栈与队列习题与答案(2)

2019-08-26 17:42

言,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,判定队满的条件为_______。

【山东工业大学 1995 一、1(1分)】

20. 设循环队列存放在向量sq.data[0:M]中,则队头指针sq.front在循环意义下的出队操作可表示为_______,若用牺牲一个单元的办法来区分队满和队空(设队尾指针sq.rear),则队满的条件为_______。

【长沙铁道学院 1997 二、4 (4分)】

21.表达式求值是_______应用的一个典型例子。【重庆大学 2000 一、10】

22.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear ,则当前队列的元素个数是_______。【厦门大学 2000 六、1(16%/3分)】

23.设Q[0..N-1]为循环队列,其头、尾指针分别为P和R,则队Q中当前所含元素个数为_______。

【北京科技大学 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分)】

四 应用题

1. 名词解释:栈。【燕山大学 1999 一、1(2分)】【吉林工业大学 1999 一、3(2分)】 2. 名词解释:队列【大连海事大学 1996 一、6 ( 1分 )】 3. 什么是循环队列?【哈尔滨工业大学 2001 三、2(3分)】【河南大学 1998 一、4(3分)】 4. 假设以S和X分别表示入栈和出栈操作,则对初态和终态均为空的栈操作可由S和X组成的序列表示(如SXSX)。

(1)试指出判别给定序列是否合法的一般规则。

(2)两个不同合法序列(对同一输入序列)能否得到相同的输出元素序列?如能得到,请举列说明。

【东南大学 1992 二(10分)】

5. 有5 个元素,其入栈次序为:A,B,C,D,E,在各种可能的出栈次序中,以元素C,D最先出栈(即C第一个且D第二个出栈)的次序有哪几个?【西南交通大学 2000 二、1】 6. 如果输入序列为1 2 3 4 5 6,试问能否通过栈结构得到以下两个序列:4 3 5 6 1 2和1 3 5 4 2 6;请说明为什么不能或如何才能得到。【武汉交通科技大学 1996 二、3 (3分)】 7. 若元素的进栈序列为:A、B、C、D、E,运用栈操作,能否得到出栈序列B、C、A、E、D和D、B、A、C、E?为什么?【北京科技大学 1998 一、2】

8. 设输入序列为a,b,c,d,试写出借助一个栈可得到的两个输出序列和两个不能得到的输出序列。

【北京科技大学 2001 一、4(2分)】

9. 设输入序列为2,3,4,5,6,利用一个栈能得到序列2,5,3,4,6吗?栈可以用单链表实现吗?

【山东师范大学 1996 五、4(2分)】

10. 试证明:若借助栈由输入序列1,2,?,n得到输出序列为P1,P2,?,Pn(它是输入序列的一个排列),则在输出序列中不可能出现这样的情形:存在着i<j<k,使Pj<Pk<Pi。【上海交通大学 1998 二(15分)】 11. 设一数

列的输入顺序为123456,若采用堆栈结构,并以A和D分别表示入栈和出栈操作,试问通过入出栈操作的合法序列。 (1) 能否得到输出顺序为325641的序列。(5分) (2) 能否得到输出顺序为154623的序列。(5分) 【北方交通大学 1995 一(10分)】 12.(1) 什么是递归程序?

(2) 递归程序的优、缺点是什么?

(3) 递归程序在执行时,应借助于什么来完成?

(4) 递归程序的入口语句、出口语句一般用什么语句实现?【大连海事大学 1996二、4(4分)】

13. 设有下列递归算法:

FUNCTION vol(n:integer):integer; VAR x :integer:

BEGIN IF n=0 THEN vol:=0

ELSE BEGIN read(x);vol:=vol(n-1)+x;END; END;

如该函数被调用时,参数n值为4,读入的x值依次为5,3,4,2,函数调用结束时返回值vol为多少?用图示描述函数执行过程中,递归工作栈的变化过程。【北京工业大学 1998 四 (10分)】

14. 当过程P递归调用自身时,过程P内部定义的局部变量在P的2次调用期间是否占用同一数据区?为什么?【山东师范大学 1999 一、4 (4分)】

15. 试推导出当总盘数为n的Hanoi塔的移动次数。 【北京邮电大学 2001 四、3 (5分)】 16. 对下面过程写出调用P(3)的运行结果。 PROCEDURE p(w:integer); BEGIN

IF w>0 THEN BEGIN p(w-1);

writeln(w);{输出W} p(w-1) END; END;

【西北大学 2001 三、7】

17. 用一个数组S(设大小为MAX)作为两个堆栈的共享空间。请说明共享方法,栈满/栈空的判断条件,并用C或PASCAL设计公用的入栈操作push(i,x),其中i为0或1,用于表示栈号,x为入栈值。

【浙江大学 1998 五、2 (7分)】 18. 简述下列程序段的功能。

PROC algo(VAR S : stack; k:integer); VAR T: stack; temp: integer; WHILE NOT empty(S) DO

[temp:=POP(S); IF temp<>k THEN PUSH(T,temp)]; WHILE NOT empty(T) DO [temp:=POP(T);PUSH(S,temp)]; 【山东科技大学 2002 一、1(4分)】

19. 用栈实现将中缀表达式8-(3+5)*(5-6/2)转换成后缀表达式,画出栈的变化过程图。 【南京航空航天大学 2001 五 (10分)】

20. 在表达式中,有的运算符要求从右到左计算,如A**B**C的计算次序应为(A**(B**C)),这在由中缀生成后缀的算法中是怎样实现的?(以**为例说明)【东南大学1993一、2(6分) 1997一、1(8分)】 21. 有递归算法如下:

FUNCTION sum (n:integer):intger; BEGIN

IF n=0 THEN sum:=0

ELSE BEGIN read(x);sum:=sum(n-1)+x END; END;

设初值n=4,读入 x=4,9,6,2

问:(1) 若x为局部变量时;该函数递归结束后返回调用程序的sum=? 并画出在递归过程中

栈状态的变化过程;

(2) 若x为全程变量递归结束时返回调用程序的sum=?【北京邮电大学 1997 一 (10分)】 22. 画出对算术表达式A-B*C/D-E↑F求值时操作数栈和运算符栈的变化过程。 【

东南大学2000一、3(6分)】

23. 计算算术表达式的值时,可用两个栈作辅助工具。对于给出的一个表达式,从左向右扫描它的字符,并将操作数放入栈S1中,运算符放入栈S2中,但每次扫描到运算符时,要把它同S2的栈顶运算符进行优先级比较,当扫描到的运算符的优先级不高于栈顶运算符的优先级时,取出栈S1的栈顶和次栈顶的两个元素,以及栈S2的栈顶运算符进行运算将结果放入栈S1中(得到的结果依次用T1、T2等表示)。为方便比较,假设栈S2的初始栈顶为?(?运算符的优先级低于加、减、乘、除中任何一种运算)。现假设要计算表达式: A-B*C/D+E/F。写出栈S1和S2的变化过程。【山东科技大学 2001 一、4 (7分)】

24. 有字符串次序为3*-y-a/y^2,利用栈,给出将次序改为3y-*ay2^/-的操作步骤。(可用X代表扫描该字符串过程中顺序取一个字符进栈的操作,用S代表从栈中取出一个字符加入到新字符串尾的出栈操作。例如,ABC变为BCA的操作步骤为XXSXSS)【东北大学 2001 一、4 ( 4分)】

25. 内存中一片连续空间(不妨假设地址从1到m)提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任一个栈,仅当这部分空间全满时才发生上溢。【东北大学 2000 一、1 (3分)】

26. 将两个栈存入数组V[1..m]应如何安排最好?这时栈空、栈满的条件是什么?【东南大学1998一、5】

27. 在一个算法中需要建立多个堆栈时可以选用下列三种方案之一,试问:这三种方案之间相比较各有什么优缺点?

(1)分别用多个顺序存储空间建立多个独立的堆栈; (2)多个堆栈共享一个顺序存储空间; (3)分别建立多个独立的链接堆栈。【北京航空航天大学 1998 一、6(4分)】

28.在某程序中,有两个栈共享一个一维数组空间SPACE[N]、SPACE[0]、SPACE[N-1] 分别是两个栈的栈底。

(1)对栈1、栈2,试分别写出(元素x)入栈的主要语句和出栈的主要语句。 (2)对栈1、栈2,试分别写出栈满、栈空的条件。【北京理工大学 1999 二、2(8分)】 29. 简述顺序存储队列的假溢出的避免方法及队列满和空的条件。【山东大学 2000 一、2 (4分)】

30. 举例说明顺序队的“假溢出”现象,并给出解决方案。【福州大学 1998 三、5 (6分)】 31. 怎样判定循环队列的空和满?【燕山大学 1999 二、3(4分)】

32. 简要叙述循环队列的数据结构,并写出其初始状态、队列空、队列满时的队首指针与队尾指针的值。

【南京航空航天大学 1995 七(5分)】

33. 利用两个栈sl,s2模拟一个队列时,如何用栈的运算实现队列的插入,删除以及判队空运算。请简述这些运算的算法思想。【北京邮电大学 1992 一、1】【东南大


栈与队列习题与答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:混凝土生产企业实验室水泥检测实施细则-粉煤灰检验细则单行本

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: