本文涉及的代码功能有:
- 链栈的初始化
- 链栈元素的压入
- 链栈元素的输出
#include#include typedef int ElemType; typedef int status; typedef struct linkStack{ ElemType data; struct linkStack *next; }Lnode,*List; //链栈初始化 void initstack(List &s){ s=NULL; } status push(List &s,ElemType e){ List p = new Lnode; p->data=e; p->next = s; s=p; printf("入栈成功!n"); } status pop(List &s,ElemType &e){ List p; if(s==NULL){printf("栈已空!n");return 0;} else{ e=s->data; s=s->next; delete s; return 1; } } //入栈! void pushstack(List &s){ int n; ElemType e; printf("请输入入栈元素个数:"); scanf("%d",&n); for(int i=0;i data; printf("栈顶元素为:%dn",e); } int main(){ List s; int c; initstack(s); while(1){ printf("入栈————1t出栈————2t获得栈顶————3t退出————0n"); printf("请输入操作代码:"); scanf("%d",&c); if(c==0)break; switch(c){ case 1:pushstack(s);break; case 2:popstack(s);break; case 3:gettop(s);break; default :printf("操作代码不在范围内!n"); } } return 0; }



