栈的链式存储结构 #include #include typedef struct SNode { int data; struct SNode *next; }SNode,*LinkStack; LinkStack top; LinkStack PushStack(LinkStack top,int x) //入栈 { LinkStack s; s=(LinkStack)malloc(sizeof(SNode)); s->data=x; s->next=top; top=s; return top; } LinkStack PopStack(LinkStack top) //退栈 { LinkStack p; if(top
=NULL) { p=top; top=top->next; free(p); printf("退栈已完成\n"); return top; } else printf("栈是空的,无法退栈
\n"); return 0; } int GetStackTop(LinkStack top) //取栈顶元素 { return top->data; } bool IsEmpty()//bool 取值false 和true,是0 和1 的区别,bool 只有一个字节,BOOL 为 int 型,bool为布尔型 { return top==NULL
true:false; } void Print() { SNode *p; p=top; if(IsEmpty()) { printf("The stack is empty
\n"); return; } while(p) { printf("%d ", p->data); p=p->next; } printf("\n"); } void main() { int x,a,b; char m; do { p