用单链表实现stack

来源:互联网 发布:怎样关闭服务器80端口 编辑:程序博客网 时间:2024/04/25 19:08
#include <iostream>using namespace std;struct node{        double var;        node *parent;        node(){}};class stack{        private :                int num;                node *front;        public:                stack(){                        num = 0;                        front = NULL;                }                void push(double v){                        node * tmp = new node();                        tmp->var = v;                        tmp->parent = front;                        front = tmp;                        num ++;                }                double top(){                        if(num==0){                                cout << "no element!" << endl;                                return 0;                        }                        return front->var;                }                double pop(){                        if(num==0){                                cout << "pop from empty stack!" << endl;                                return 0;                        }                        double s = front->var;                        node* tmp = front;                        front = front->parent;                        delete tmp;                        num--;                        return s;                }                ~stack(){                        while( num!=0){                                cout << "pop: "<< pop() << endl;                        }                }};int main(){        stack s;        for(int i=0;i<10;i++){                s.push(i);        }        for(int i=1;i<5;i++){                        s.pop();        }        cout <<s.top() << endl;}