《数据结构栈与队列》由会员分享,可在线阅读,更多相关《数据结构栈与队列(4页珍藏版)》请在金锄头文库上搜索。
1、两栈共享一向量空间的定义typedef struct /* 两栈共享一向量空间 */ ElemType vm; /* 栈可用空间0m-1 */int top2 twostack;进栈int push(twostack *s,int i, ElemType x) /* 两栈共享向量空间,i是0或1,表示两个栈,x是进栈元素 w /* 本算法是入栈操作 */ w if (s- top1 - s-top0=1) return(0);/* 栈满 */ w else switch (i) w case 0: s-v+(s-top)=x; break; w case 1: s-v-(s-top)=x; b
2、reak; w default: printf(“栈编号输入错误”);return(0); w w return(1); /* 入栈成功 */ w w /* 算法结束 */退栈ElemType pop(twostack *s,int i) w /* 两栈共享向量空间,i是0或1,表示两个栈,本算法是退 栈操作 */ w ElemType x; w if (s-top0=-1 /* 栈空 */ w else switch (i) w case 0: x=s-v(s-top)-;break; w case 1: x=s-v(s-top)+;break; w default: printf(“栈编号
3、输入错误”);return(0); w w return(x); /* 退栈成功 */ w w /* 算法结束 */取栈顶元素ElemType top (twostack *s,int i) w /* 两栈共享向量空间,i是0或1,表示两个栈,本算法是取 栈顶元素操作 */ w ElemType x; w switch (i) w case 0: if (s-top0=-1) return(null);/* 栈空 */ w x=s-vs-top; break; w case 1: if (s-top1=m) return(null);/* 栈空 */ w x=s-vs-top;break; w default: printf(“栈编号输入错误”);return(null); w w return(x); /* 取栈顶元素成功 */ w /* 算法结束 */