第三章 栈和队列 课后习题及作业
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章栈和队列
1 试证明:若借助栈由输入序列12……n得到的输出序列为p1p2……p n(它是输入序列的一个排列),则在输出序列中不可能出现这样的情形:存在着,i〈j 〈k使p i
2节3--2的格式,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程:
A-B*C/D+E ↑F
3试将下列递归过程改写为非递归过程。
Void test(int &sum){
Int x;
Scanf(x);
If(x==0)sum=0;
Else{test(sum
Printf(sum); }
4假设以顺序存储结构实现一个双向栈,既在一维数组的存储空间存在着两个栈,它们的栈底分别设在数组的两个端点。试编写实现这个双向栈的三个操作:初始化inistack(tws)、入栈push(tws,i,x)、和出栈pop(tws,i)的算法,其中i 为0或1,用以分别指示设在数组两端的两个栈,并讨论按过程(正/误状态变量可设为变参)或函数设计这些操作算法各有什么优
缺点。
5假设称正读和反读都相同的字符序列为“回文”,例如,‘abba’和‘abcba’是回文,‘abcde’和‘ababab’则不是回文。试写一个算法判别读入的一个以‘@’为结束符的字符序列是否是回文。