栈类模板(练手)

栈类模板,指针实现

#include
using namespace std;
template<class T>
class Stack{
 public:
    T data;
    Stack* next;
    Stack(){ next=NULL;}
    void push(T x) //不带头节点,利用链式前向心
    {
        Stack *r=new Stack;
        r->data=x;
        r->next=next;
        next=r;
    }
    bool empty(){return next==NULL;}
    void pop(){
        if(next!=NULL)
        {
            Stack *r=next->next;
            delete next;
            next=r;
        }
        else cout<<"Stack is empty"<<endl;
    }
    void Destory()
    {
        Stack *r=NULL;
        while(next!=NULL)
        {
            r=next->next;
            free(next);
            next=r;
        }
    }
    void top(){
        if(next!=NULL)
        {
            cout<<next->data<<endl;
        }
        else cout<<"Stack is empty"<<endl;
    }
 };
 int main()
 {

     Stack<int> s;
     return(0);
 }

你可能感兴趣的:(个人感悟)