第三章 栈和队列 课后习题及作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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’则不是回文。试写一个算法判别读入的一个以‘@’为结束符的字符序列是否是回文。

相关文档
最新文档