栈的链式表示与实现 ------(链栈)
链栈的存储结构
插入和删除操作仅限制在表头位置上进行;
链栈没有必要像单链表那样附加头节点
栈顶指针就是链栈的头指针
//链栈的存储结构 typedef structt StackNode{ ElemType data; struct StackNode *Next; }StackNode,*LinkStack; LinkStack S;
初始化:
Status InitStack(LinkStack &S ) { S=NULL; return OK; }
判断链表是否为空
Status StackEmpty(LinkStack S) { if (S==NULL) return TRUE; else return FALSE; }
栈栈进栈
Status Push(LinkStack &S , SElemType e){ p=(StackNode*)malloc(sizeof(StackNode)); if (!p) exit(OVERFLOW); p->data=e; p->next=S; S=p; return OK; }
链栈出栈
Status Pop (LinkStack &S,SElemType &e) { if (S==NULL) return ERROR; e = S-> data; p = S; S = S-> next; free(p); return OK; }

浙公网安备 33010602011771号