顺序栈的基本应用
#include <iostream> using namespace std; template <class T> class seqstack{ public: seqstack(); ~seqstack(){ }; void push(T x); T pop(); T getpop(); int Empty(); private: T data[100]; int top; }; //建空 template <class T> seqstack<T>::seqstack() { top=-1; } //入栈 template <class T> void seqstack<T>::push(T x) { if(top>=99) {cout<<"栈满"<<endl;} top++; data[top]=x; } //出栈 template <class T> T seqstack<T>::pop() { if(top==-1){cout<<"栈空"<<endl;return 0;} T x=data[top]; top--; return x; } //查首元 template <class T> T seqstack<T>::getpop() { if(top==-1){cout<<"栈空"<<endl;return 0;} return data[top]; } //判表空 template <class T> int seqstack<T>::Empty() { if(top==-1)return 1; else return 0; } int main() { seqstack<int> h; int x; cin>>x; while(x!=0) { h.push(x); cin>>x; } cout<<h.pop()<<endl; cout<<h.getpop()<<endl; return 0; }