#includeusing namespace std; typedef struct StackNode{ int data; struct StackNode *next; }StackNode, *LinkStack; //初始化 bool InitLinkStack(LinkStack &S){ S = NULL; } //入栈 bool Push(LinkStack &S,int x){ StackNode *p = new StackNode; p->data = x; p->next = S; S = p; return true; } //出栈 bool Pop(LinkStack &S,int &x){ if(S==NULL) return false; StackNode *p = S; x = S->data; S = S->next; delete p; return true; } //读栈顶数据 void ReadTop(LinkStack S){ cout << S->data << endl; } //输出栈 void PrintLinkStack(LinkStack S){ while(S != NULL){ cout << S->data << " "; S = S->next; } } int main(){ LinkStack S; InitLinkStack(S); Push(S,1); ReadTop(S); Push(S,2); Push(S,3); PrintLinkStack(S); cout << endl; cout <<"当前栈顶元素是:" << S->data << endl; int x; Pop(S,x); cout << "取出的栈顶元素是:" << x << endl; PrintLinkStack(S); return 0; }



