进栈操作: 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/25
第3章 2021/2/25 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/25
第3章 2021/2/25 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/25
第3章 2021/2/25 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/25
第3章 2021/2/25 19 初始化 status InitStack(SqStack &s) { s.top = 0; return OK; }
进栈 Status Push(sqstack &s, selem Type e i if(s top== MAXSIZE) return ERROR S base[s top]=e;s top++ return OK 第3章 2021/2/25
第3章 2021/2/25 20 进栈 Status Push(SqStack &s,SElemType e) { if (s.top == MAXSIZE) return ERROR; s.base[s.top] = e; s.top++; return OK; }