#include "iostream" using namespace std; template <class T> class stack{ public: stack(){ L=NULL; } void push(T x); T pop(); private: struct Node{ T data; Node *next; } *L; }; template <class T> void stack<T>::push(T x){ Node *p=(Node*)malloc(sizeof(Node)); p->data=x; p->next=L; L=p; } template <class T> T stack<T>::pop(){ if(L!=NULL){ Node *x=L; L=L->next; return x->data; } else{ return NULL; } } void main(){ stack<int> ss; ss.push(1); ss.push(2); ss.push(3); cout<<ss.pop()<<endl; cout<<ss.pop()<<endl; cout<<ss.pop()<<endl; if(!ss.pop()) cout<<"堆栈为空!!!"<<endl; getchar(); getchar(); }