建立一个顺序栈,实现栈的压栈和出栈操作。
#include<iostream>
using namespace std;
#define MAX 10
class Seqstack{
public:Seqstack(){top=-1;}
~Seqstack(){}
void Push(int x);
int Pop();
int Gettop(){if(top!=-1) return data[top];}
int Empty(){
if(top==-1) return 1;
return 0; }
private:
int data[MAX];
int top;
};
void Seqstack::Push(int x){ //进栈
if(top==MAX-1) throw "上溢";
data[++top]=x;
}
int Seqstack::Pop(){ //出栈
int x;
if(top==MAX-1) throw "下溢";
x=data[top--];
return x;
}
int main(){
Seqstack Que;
int data[5]={22,56,79,98,12},i;
cout<<"原栈为:"<<endl;
for(i=0;i<5;i++)
cout<<data[i]<<" ";
cout<<endl;
Que.Push(99);
cout<<"99进栈后:"<<endl;
for(i=0;i<6;i++)
cout<<data[i]<<" ";
cout<<endl;
cout<<"出栈的值为:"<<Que.Pop()<<endl;
return 0;
}
实验结果:
这是一个很简单的顺序栈。可见顺序栈先进后出的特点