【C数据结构】简单的链栈代码

    技术2022-07-11  142

     

    #include<stdio.h> #include<stdlib.h> typedef int datatype; typedef struct stacknode{ datatype data; struct stacknode *next; }StackNode; typedef struct{ StackNode *top; }LinkStack; void InitStack(LinkStack &s); int ReadTop(LinkStack s,datatype x); void Push(LinkStack &s,datatype x); int Pop(LinkStack &s,datatype &x); void ShowStack(LinkStack &s); int main(){ LinkStack s; InitStack(s); datatype x; while(1){ scanf("%d",&x); if(x!=12138) Push(s,x); else break; } ShowStack(s); } void InitStack(LinkStack &s){ s.top=NULL; } int ReadTop(LinkStack s,datatype x){ if(!s.top) return 0; x=s.top->data; return 1; } void Push(LinkStack &s,datatype x){ StackNode *p; p=new StackNode;//(StackNode *)malloc(sizeof(StackNode) p->data=x; p->next=s.top; s.top=p; } int Pop(LinkStack &s,datatype &x){ StackNode *p; if(!s.top) return 0; p=s.top; x=p->data; s.top=p->next; free(p); return 1; } void ShowStack(LinkStack &s){ datatype x; while(Pop(s,x)){ printf("%d ",x); } }

     

    Processed: 0.020, SQL: 9