数据结构顺序栈和链栈基本操作----c++实现
2012-11-25 16:48
417 查看
顺序栈:
链栈:
#include<iostream> using namespace std; #define MaxSize 50 class SeqStack{ private: int data[MaxSize]; int top; public: void initStack(); //初始化栈 void Push(int elem);//入栈 int Pop();//出栈 bool isEmpty();//判断栈是否为空 int getLength();//得到栈的长度 void visit();//遍历栈里的数据 }; void SeqStack::initStack() { for(int i=0;i<MaxSize;i++) data[i]=0; top=-1; } void SeqStack::Push(int elem) { if(top==MaxSize) return; top++; data[top]=elem; } int SeqStack::Pop() { if(top==-1) return 0; int elem= data[top]; top--; return elem; } bool SeqStack::isEmpty() { if(top==-1) return true; else return false; } int SeqStack::getLength() { return top++; } void SeqStack::visit() { while(!isEmpty()) cout<<Pop()<<" "; }
链栈:
#include<iostream> using namespace std; struct linkStack{ char data; linkStack *next; }; //链栈的初始化 linkStack * initStack() { linkStack *top=new linkStack; top=NULL; return top; } //判断链栈是否为空 bool isEmpty(linkStack *stack) { if(NULL==stack) return true; return false; } //链栈入栈 linkStack * push(linkStack *stack,char data) { linkStack *node=new linkStack; node->data=data; node->next=stack; stack=node; return stack; } //链栈出栈 linkStack * pop(linkStack *stack) { if(stack!=NULL) { cout<<stack->data; stack=stack->next; }else cout<<"是空栈!"; return stack; } //链栈的长度 int getLength(linkStack *stack) { int length=0; if(stack==NULL) return 0; while(stack!=NULL) { length++; stack=stack->next; } return length; } //取出栈顶元素 int getTop(linkStack *stack) { int temp; temp=stack->data; return temp; } int main() { linkStack *stack=initStack(); for(int i=0;i<9;i++) { char c=i+96; stack=push(stack,c); } for(int j=0;j<9;j++) { stack=pop(stack); } return 0; }
相关文章推荐
- C++实现二叉树的基本操作
- 【数据结构】双向循环线性表的基本操作--C++/C实现
- 实验4:栈和队列的基本操作实现及其应用之《链栈》
- C++实现栈的基本操作
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 使用C++实现链表的基本操作
- 顺序表基本操作C++实现
- 顺序表基本操作的代码实现:C++实现
- 【数据结构】双向循环线性表的基本操作--C++/C实现
- C++实现有向权图的基本操作,界面友好,操作方便,运行流畅
- C++实现有向权图的基本操作,界面友好,操作方便,运行流畅
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- C++实现普通队列,循环队列的基本操作(初始化,入队,出队,获取队列首元素等)
- C++实现顺序表的基本操作
- MKL学习——基本操作C++实现
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- c++模板实现二叉树,线索化,线索化遍历,非递归遍历及一些基本操作
- c++学习笔记—单链表基本操作的实现
- 【代码】C++实现二叉树基本操作及测试用例
- C++ 实现链表的基本操作之一:链表插入