概述
三 填空题
1.栈是___操作受限____的线性表,其运算遵循_先进后出______的原则。【北京科技大学 1997 一、3】
2.____栈___是限定仅在表尾进行插入或删除操作的线性表。【燕山大学 1998 一、3 (1分)】
3. 一个栈的输入序列是:1,2,3则不可能的栈输出序列是__3,1,2_____。【中国人民大学2001一、1(2分)】
4. 设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列是__2,3_____,而栈顶指针值是___100c____H。设栈为顺序栈,每个元素占4个字节。【西安电子科技大学 1998 二、1(4分)】
5. 当两个栈共享一存储区时,栈利用一维数组stack(1,n)表示,两栈顶指针为top[1]与top[2],则当栈1空时,top[1]为__0_____,栈2空时 ,top[2]为_n+1______,栈满时为__top【1】+1=top【2】_____。
【南京理工大学 1997 三、1(3分)】
6.两个栈共享空间时栈满的条件___两栈顶指针相减的绝对值为1____。【中山大学 1998 一、3(1分)】
7.在作进栈运算时应先判别栈是否_(1)满_;在作退栈运算时应先判别栈是否_空(2)_;当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为_(3)n_。
为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的空间时,应将两栈的_(4)栈底_分别设在内存空间的两端,这样只有当_(5)两栈顶指针相邻_时才产生溢出。【山东工业大学 1994 一、1(5分)】
8. 多个栈共存时,最好用__链式存储结构_____作为存储结构。【南京理工大学 2001 二、7(2分)】
9.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的S和X的操作串为__s,x,s,,s,x,s,x,x_____。【西南交通大学 2000 一、5】
10. 顺序栈用data[1..n]存储数据,栈顶指针是top,则值为x的元素入栈的操作是_data[top++]=x______。
【合肥工业大学 2001 三、2 (2分)】
11.表达式23+((12*3-2)/4+34*5/7)+108/9的后缀表达式是_______。【中山大学 1998 一、4(1分)】
12. 循环队列的引入,目的是为了克服_假溢出时大量移动元素______。【厦门大学 2001 一、1 (14/8分)】
13.用下标0开始的N元数组实现循环队列时,为实现下标变量M加1后在数组有效下标范围内循环,可采用的表达式是:M:=_______(填PASCAL语言,C语言的考生不填); M= _______(填C语言,PASCAL语言的考生不填)。【西南交通大学 2000 一、7】
14.____队列____又称作先进先出表。【重庆大学 2000 一、7】
15. 队列的特点是_先进先出______。【北京理工大学 2000 二、2(2分)】
16.队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是_先进先出______。
【北方交通大学 2001 二、5】
17. 已知链队列的头尾指针分别是f和r,则将值x入队的操作序列是_______。
【合肥工业大学 2000 三、3(2分)】
18.区分循环队列的满与空,只有两种方法,它们是_牺牲一个存储单元_____和_设标记_____。【北京邮电大学2001 二、2(4分)】
19.设循环队列用数组A[1..M]表示,队首、队尾指针分别是FRONT和TAIL,判定队满的条件为_(tail+1)mod m=front______。
【山东工业大学 1995 一、1(1分)】
20. 设循环队列存放在向量sq.data[0:M]中,则队头指针sq.front在循环意义下的出队操作可表示为__sq.front=(sq.front+1)mod(m+1)_____,若用牺牲一个单元的办法来区分队满和队空(设队尾指针sq.rear),则队满的条件为__sq.front=(sq.rear+1)mod (m+1)_____。
【长沙铁道学院 1997 二、4 (4分)】
21.表达式求值是__栈_____应用的一个典型例子。【重庆大学 2000 一、10】
22.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear ,则当前队列的元素个数是__(rear-front+m)mod m_____。【厦门大学 2000 六、1(16%/3分)】
23.设Q[0..N-1]为循环队列,其头、尾指针分别为P和R,则队Q中当前所含元素个数为____(r-p+n)%n___。
【北京科技大学 1997 一、4】
24.完善下面算法。【中山大学 1998 四、2(6分)】
后缀表达式求值,表达式13/25+61的后缀表达式格式为: 13, 25/61, +
FUNC compute(a):real; 后缀表达式存储在数组a[1..m]中。
BEGIN
setnull(s);i:=1;ch:= (1)______;
WHILE ch<>’@’ DO
BEGIN
CASE ch OF
‘0’..‘9’: x:=0;
WHILE ch<>’,’DO
BEGIN
x:=x*10+ord(ch)-ord(‘0’);
i:=i+1;ch:= (2)_______;
END
‘+’: x:=pop(s)+pop(s);
‘-‘: x:=pop(s);x:=pop(s)-x;
‘*’: x:=pop(s)*pop(s);
‘/’: x:=pop(s);x:=pop(s)/x;
ENDCASE
push(s,x);i:=i+1;ch:=a[i];
END;
comput:= (3)_______;
END;
25. 算术表达式求值的流程,其中OPTR为算术符栈,OPND为操作数栈,precede(oper1,oper2)是比较运算符优先级别的函数,operate(opnd1,oper,opnd2)为两操作数的运算结果函数。(#表示运算起始和终止符号)【西北工业大学 1999 六、2 (7分)】
FUNCTION exp_reduced:operandtype;
INITSTACK(OPTR);PUSH(OPTR"#");INITSTACK(OPND);read(w);
WHILE NOT((w='#’) AND (GETTOP(OPTR)='#')) DO
IF NOT w in op THEN PUSH(OPND,w);
ELSE CASE precede(GETTOP(OPTR),w)OF
'<':[(1)_______; read(w);]
'=':[(2)_______; read(w);];
'>':[theta:=POP(OPTR);b:=POP(OPND);a:=POP(OPND);(3)_______;]
ENDC;
RETURN(GETTOP(OPND));
ENDF;
26.根据需要,用适当的语句填入下面算法的_______中:
问题:设有n件物品,重量分别为w1,w2,w3,…,wn和一个能装载总重量为T的背包。能否从n件物品中选择若干件恰好使它们的重量之和等于T。若能,则背包问题有解,否则无解。解此问题的算法如下:
FUNCTION kanp_stack(VAR stack,w:ARRAY[1..n] OF real; VAR top:integer; T:real):boolean;
{w[1:n] 存放n件物品的重量,依次从中取出物品放入背包中,检查背包重量,若不超过T,则装入,否则弃之,取下一个物品试之。若有解则返回函数值true,否则返回false}
BEGIN
top:=0; i:=1; { i指示待选物品}
WHILE (1)_______ AND(2)_______DO
[IF (3)______ OR (4)_______ AND (i<n)
THEN [top := (5)_______ ;stack[top] :=i;{第i件物品装入背包}
T:=T-w[i]];
IF T=0 THEN RETURN ((6)_______) {背包问题有解}
ELSE [IF (i=n ) AND (top>0)
THEN [i:=(7)_______;{取出栈顶物品}
top:= (8)_______ ;T:= (9)_______ ]; {恢复T值}
i:=i+1 {准备挑选下一件物品}
];
];
RETURN((10)_______) {背包无解}
END;
【北京邮电大学 1996 四(10分)】
25、(1)PUSH(OPTR,w)(2)POP(OPTR)(3)PUSH(OPND,operate(a,theta,b))
26、(1)T>0(2)i<n(3)T>0(4)top<n(5)top+1(6)true(7)i-1(8)top-1(9)T+w[i](10)false
最后
以上就是丰富火为你收集整理的第三章 栈和队列 填空题的全部内容,希望文章能够帮你解决第三章 栈和队列 填空题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复