C++栈的链式存储演示代码
#include<iostream> using namespace std; struct Data { Data *next; int data; }; class Link_Stack { private: Data *base; Data *top; int top1; public: Link_Stack() { Data *temp=new Data; temp->data=NULL; top=temp; base=top; top1=0; } void push(int n) { Data* temp=new Data; temp->data=n; temp->next=top; top=temp; top1++; } int pop() { int t; t=top->data; top=top->next; top1--; return t; } void output() { Data *p=top; while(p->data!=NULL) { cout<<p->data<<" "; p=p->next; } } }; int main() { Link_Stack a; int i,n=1,s=0; cin>>n; while(n!=0) { s++; a.push(n); cin>>n; } for(i=1;i<=2;i++) { cout<<"返回栈顶的元素:"<<a.pop()<<endl; cout<<"剩下的元素为:"; a.output(); cout<<endl; } cout<<endl; return 0; }