进栈操作: Status Push L ( LinkStack &s, SElem Type e) i p=(LinkStack )malloc(sizeof(SNode) if(p)exit(Overflow) p->data=e; p->next =S; s-p; return oK 第3章 2021/2/20
第3章 2021/2/20 16 进栈操作: Status Push_L (LinkStack &s,SElemType e) { p=(LinkStack)malloc(sizeof(SNode)); if (!p) exit(Overflow); p->data = e; p->next = s; s=p; return OK; }
退栈操作 Status Pop L LinkStack &s, sElem Type &e) i if(!s) return ERROR e=s->data;p=S,S=S->next free(p) return OK 第3章 2021/2/20
第3章 2021/2/20 17 退栈操作 Status Pop_L (LinkStack &s, SElemType &e) { if (!s) return ERROR; e=s->data; p=s; s=s->next; free(p); return OK; }
3)静态分配整型指针 ●定义 #define maXsize 100 typedef struct SElem Type base MaXsizei Int top iSqStack Sastack s 第3章 2021/2/20
第3章 2021/2/20 18 3)静态分配整型指针 ⚫ 定义 #define MAXSIZE 100 typedef struct { SElemType base[MAXSIZE]; int top; }SqStack; SqStack s;
初始化 status Initstack(SqStack &s) i s top=0 return OK 第3章 2021/2/20
第3章 2021/2/20 19 初始化 status InitStack(SqStack &s) { s.top = 0; return OK; }