- 50
- 0
- 约8.26千字
- 约 28页
- 2016-12-16 发布于河南
- 举报
第三章 栈和队列习题课 3.3 写出下列程序的输出结果(栈的元素类型SElemType为char)。 Void main() { Stack S; Char x, y; InitStack(S); x=’c’; y=’k’; push(S,x); push(S,’a’); push(S,y); pop(S,x); push(S,’t’);push(S,x); pop(S,x); push(S,’s’); while (!StackEmpty(S)) {pop(S,y); printf(y); } printf(x); } 输出结果是:stack 3.3解答 先解释一下你的一个误区: Pop()函数是出栈并且将出栈的元素存放在第二个行参里,所以在这里x的值不再是c了,而是出栈的元素。。 过程: 首先是三个压栈操作,之后栈里的元素为:cak,左边的为栈底,右边是栈顶。 然后一个出栈,此时栈里的元素为:ca,x中存的是k; 之后两次压栈,此时栈里的元素为:catk; 之后一个出栈,此时栈里的元素为:cat,x中存的是k; 最后一次压栈,此时栈里的元素为:cats,x中存的是k; 之后while(!StackEmpty(S)){ Pop(S,y);printf(y); }; 结果是stac, Printf(x); 结果是k, 所以最终的结果为stack 3.4 简述以下算法的功能
原创力文档

文档评论(0)