用类模板实现对任何类型的数据进行堆栈进行存取操作。

#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();
}
原文地址:https://www.cnblogs.com/593213556wuyubao/p/3053683.html