链栈的初始化
链栈采用链表来存储栈
//链栈的定义 typedef struct LNode { int data; struct LNode *next; }LNode;
初始化链栈,要制造一个头节点
//初始化一个链栈 void initstack(LNode*&Lst) { Lst=(LNode*)malloc(sizeof(LNode));//制造头节点 Lst->next=NULL; }
判断栈空
//判断链栈是否为空 int isEmpty(LNode *Lst) { if(Lst->next==NULL) return 1; else return 0; }
进栈
//进栈 void push(LNode *Lst,int x) { LNode *p; p=(LNode*)malloc(sizeof(LNode)); p->next=NULL; //头插法 p->data=x; p->next=Lst->next; Lst->next=p; }
出栈
//出栈 int pop(LNode *Lst,int &x) { LNode *p; if(Lst->next==NULL) return 0; //单链表删除 p=Lst->next; x=p->data; Lst->next=p->next; free(p); return 1; }
ok,没问题!