顺序栈 | 共享栈 | |
S.top==-1 栈空 S->top+1== MAXSIZE 栈满 S.data[S.top] S的栈顶元素 | ||
节点 | int data[MAXSIZE]; int top; | SElemType data[MAXSIZE]; int top1; int top2; |
初始化 | S->top=-1; | S->top1=-1; S->top2=MAXSIZE; |
清空 | S->top=-1; | S->top1=-1; S->top2=MAXSIZE; |
是否为空 | if (S.top==-1) return TRUE; | if (S.top1==-1 && S.top2==MAXSIZE) return TRUE; |
长度 | S.top+1; | (S.top1+1)+(MAXSIZE-S.top2) |
返回第i个元素 | ||
返回元素位置 | ||
unionL | ||
插入 | 栈满,不插入 S->top++; S->data[S->top]=e; | S->top1+1==S->top2,栈满不插入 S->data[++S->top1]=e S->data[--S->top2]=e; |
删除 | 空栈,不删除 *e = S->data[S->top]; S->top--; | if (S->top1==-1) return ERROR; *e=S->data[S->top1--]; if (S->top2==MAXSIZE) return ERROR; *e=S->data[S->top2++]; |
输出 | int i=0; while(i<=S.top) { printf("%d ",S.data[i]); i++; } | i=0; while(i<=S.top1) { visit(S.data[i++]); } i=S.top2; while(i<MAXSIZE) { visit(S.data[i++]); } |
顺序栈和共享栈
最新推荐文章于 2023-04-14 09:35:40 发布