◆出栈操作: popdstack(stack*s, char ch) *从栈S1或S2取出栈顶元素并返回其值* if(char=’s1’) if(s->top1==0) returnnull;/*栈s1已空*/ else S->topl=s->topl-l; return(s->data[s->top1D) }/*s1出栈*/
出栈操作: popdstack(dstack *s,char ch) {/*从栈S1或S2取出栈顶元素并返回其值*/ if (char=’s1’) { if(s->top1==0) return null;/*栈s1已空*/ else { s->top1= s->top1-1; return(s->data[s->top1]); } }/*s1出栈*/
if(char='s2') if(s->top2>maxsize-1) return null./*栈s2已空*/ el se s->top2=S->top2+1; return (s->datals->top2) }/*s2出栈*/
if(char=’s2’) { if(s->top2>maxsize-1) return null;/*栈s2已空*/ else { s->top2= s->top2+1; return (s->data[s->top2]); } }/*s2出栈*/ }
栈的链式存储结构 链栈:即栈的链式存储结构;是运算受限制的单链表 其插入和删除操作仅限于表头位置上进行。 data next 语法说明: 栈顶 Typedef datatype int: Typedef struct node datatype data; struct node *next. linkstack;/"链栈结点类型*/ linkstack*top 栈底 图4-4链栈示意图
栈的链式存储结构 链栈 :即栈的链式存储结构 ;是运算受限制的单链表, 其插入和删除操作仅限于表头位置上进行。 语法说明: Typedef datatype int; Typedef struct node { datatype data; struct node *next; }linkstack;/*链栈结点类型*/ linkstack *top;
进栈操作: Linkstack pushlinkstack(Linkstack *top, Datatype w) /*将元素w插入链栈top的栈顶 linkstack"p p= malloc(sizeof(linkstack);/生成新结点*p p->data=w: p->next=top; return p;/*返回新栈顶指针*/ 3/*pushlinkstack*/
进栈操作: Linkstack pushlinkstack(Linkstack *top,Datatype w) /*将元素w插入链栈top的栈顶*/ { linkstack *p; p=malloc(sizeof(linkstack));/*生成新结点*p */ p->data=w; p->next=top; return p;/*返回新栈顶指针*/ }/*pushlinkstack*/