#include<iostream> using namespace std; typedef int SElemType; typedef struct StackNode{//栈内元素结构 SElemType data; struct StackNode *next; }StackNode; typedef StackNode * LinkStackPtr; typedef struct LinkStack{ LinkStackPtr top; //栈顶指针 int count;//栈的元素计数器 }LinkStack; /*进栈*/ void Push( LinkStack *S, SElemType e){ LinkStackPtr s = new StackNode; s->data = e; s->next = S->top; S->top = s; S->count++; } /*出栈*/ void Pop(LinkStack *S){ LinkStackPtr p; //判断栈是否为空 if (S->count < 0){ cout << "栈空了"; return; } cout << S->top->data << endl;; p = S->top; //将栈顶节点赋值给p S->top = S->top->next; free(p); S->count--; } int main(){ LinkStack *S = new LinkStack; S->count = -1; Push(S, 1); Push(S, 2); Push(S, 3); Push(S, 4); Push(S, 5); Pop(S); Pop(S); Pop(S); Pop(S); Pop(S); }