第3章栈与队列答案

发布 2023-05-21 11:25:28 阅读 9361

一、填空题。

1.线性任何栈顶 2.栈顶栈底 3.移动栈顶指针存入元素。

二、选择题。

三、判断题。

四、简答题。

1.至少有14种。

全进之后再出情况,只有1种:4,3,2,1

进3个之后再出的情况,有3种,3,4,2,1 3,2,4,1 3,2,1,4

进2个之后再出的情况,有5种,2,4,3,1 2,3,4,1 2,1, 3,4 2,1,4,3 2,1,3,4

进1个之后再出的情况,有5种,1,4,3,2 1,3,2,4 1,3,4,2 1, 2,3,4 1,2,4,3

2.输出为“stack”。

五、算法设计题。

1.status allbrackets_test(char *str)//判别表达式中三种括号是否匹配

initstack(s);

for(p=str;*p;p++)

'&&c!='

}//for

if(!stackempty(s)) return error;

return ok;

//allbrackets_test

2.int palindrome_test()

while(!stackempty(s))

return ok;

//palindrome_test

一、填空题。

1.队尾队首 2. 队列 4.队列的假溢出 5.先进先出。

二、选择题。

1. b 2. d 5.(1,2,2)

三、判断题。

四、简答题。

1.用队列长度计算公式: (n+r-f)% n

l=(40+19-11)% 40=8l=(40+11-19)% 40=32

2.一般的一维数组队列的尾指针已经到了数组的上界,不能再有入队操作,但其实数组中还有空位置,这就叫“假溢出”。

采用循环队列是解决假溢出的途径。

另外,解决队满队空的办法有三:

设置一个布尔变量以区别队满还是队空;

浪费一个元素的空间,用于区别队满还是队空。

使用一个计数器记录队列中元素个数(即队列长度)。

我们常采用法②,即队头指针、队尾指针中有一个指向实元素,而另一个指向空闲元素。

判断循环队列队空标志是: f=rear 队满标志是:f=(r+1)%n

五、阅读理解。

1.输出为“char”。

2.该算法的功能是:利用堆栈做辅助,将队列中的数据元素进行逆置。

六、算法设计题。

int elemtype;

typedef struct qnode

status enqueue(queue& q,elemtype e)

return ok; }

status dequeue(queue& q,elemtype& e)

return ok; }

第3章栈与队列答案

return ok allbrackets test 2 int palindrome test while stackempty s return ok palindrome test 一 填空题。1.队尾队首 2.队列 4.队列的假溢出 5.先进先出。二 选择题。1.b 2.d 5.1,2,2 ...

第3章 栈和队列作业

一 选择题。1.若一个栈的输入序列为1,2,3,n,输出序列的第一个元素是i,则第j个输出元素是 a.i j 1b.i jc.j i 1 d.不确定的。2.用s表示进栈操作,用x表示出栈操作。当输入序列为1234,输出序列为1342时,经过的栈操作为 a.sxsxssxxb.sssxxsxx c.s...

第3章习题与答案

dasb.43h c.54h d.67h 答案 c11.下列四条指令中,需要使用dx寄存器的指令是 bx bl ax,20h 20h,al 答案 c12.设 al 0e0h,cx 3,执行rcl al,cl指令后,cf的内容 a.0 b.1 c.不变 d.变反。答案 b13.下列四条指令中,错误的是...