[考研类试卷]计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编1及答案与解析.doc
《[考研类试卷]计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编1及答案与解析.doc》由会员分享,可在线阅读,更多相关《[考研类试卷]计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编1及答案与解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编 1 及答案与解析一、单项选择题1 对于栈操作数据的原则是_。【青岛大学 2001 年】(A)先进先出(B)后进先出(C)后进后出(D)不分顺序2 在初始为空的堆栈中依次插入元素 f,e,d,c ,b,a 以后,连续进行了三次删除操作,此时栈项元素是_。【北京航空航天大学 2002 年】(A)c(B) d(C) b(D)e3 六个不同元素依次进栈,能得到_种不同的出栈序列。【北京邮电大学 2007年】(A)42(B) 82(C) 132(D)1924 入栈序列为 1,2,3,4,5,则可能得到的出栈序列是_。【上海交通大学2005】(A)1
2、2534(B) 31254(C) 32541(D)142355 一个栈的输入序列为 1,2,3,4,5,则下列序列中不可能是栈的输出序列的是_。【北京理工大学 2000 年】【北京交通大学 2006 年】【中南大学 2003 年】(A)23415(B) 54132(C) 23145(D)154326 若已知一个栈的入栈序列为 1,2,3,4,其出栈序列为 pl,p2,p3,p4,则p2,p4 不可能是_。【华中科技大学 2007 年】(A)2、4(B) 2、1(C) 4、3(D)3、47 某堆栈的输入序列为 a,b,c ,d,下面的四个序列中,不可能是它的输出序列的是_。【北京航空航天大学 2
3、005 年】【北京邮电大学 2005 年】(A)a,c,b,d(B) b,c,d,a(C) c,d,b,a(D)d,c, a,b8 输入序列为 ABC,可以变为 CBA 时,经过的栈操作为 _。【中山大学 1999年】(A)push,pop,push,pOp,push,pop(B) push, push,push,pOp ,pOp,pop(C) push, push,pop,pOp,push,pop(D)push,pOp,push,push,pOp,pop9 若栈采用顺序存储方式存储,现两栈共享空间 V1m ,topi代表第 i 个栈(j=1,2)栈顶,栈 1 的底在 V【1】,栈 2 的底在
4、 Vm,则栈满的条件是_。【南京理工大学 1999 年】(A)1top2top11=0(B) top1+1=top2(C) top1+top2=m(D)top1=top210 向一个栈顶指针为 h 的带头结点的链栈中插入指针 s 所指的结点时,应该执行_。【北京理工大学 2005 年】(A)hnext=s :(B) s-next=h;(C) snext=h:h-next=s ;(D)s-next=h 一nexth-next=S;11 执行完下列语句段后,i 值为_。【浙江大学 2000 年】intf(intx)return(x0)?x*f(x 一 1):2);inti;i=f(f(1);(A)
5、2(B) 4(C) 8(D)无限递归12 一个递归算法必须包括_。【武汉大学 2000 年】(A)递归部分(B)终止条件和递归部分(C)迭代部分(D)终止条件和迭代部分13 将递归算法转变成对应非递归算法时,需要使用_保存中间结果。【华中科技大学 2007 年】(A)栈(B)队列(C)二叉树(D)单链表14 表达式 a*(b+c)一 d 的后缀表达式是_。【南京理工大学 2001 年】(A)abed*+一(B) abc+*d(C) abe*+d(D)-+*abcd15 中缀表达式(A+B)*(CD)(EF*G)的后缀表达式是_。【北京邮电大学2005 年】(A)A+B*CDE F*G(B) A
6、B 十 CD 一*EFG*一(C) AB+C*DEF G+(D)ABCDEFG+*一一*16 中缀表达式 A 一(B+CD)E 的后缀形式是_。【北京航空航天大学 2007 年】(A)ABCD+E*一(B) ABC+D*E(C) ABC+DE*(D)ABC 一+D E*17 设计一个判别表达式中左、右括号是否配对出现的算法,采用_数据结构最佳。【西安电子科技大学 1996 年】(A)线性表的顺序存储结构(B)队列(C)线性表的链式存储结构(D)栈18 在链队列的出队操作中,修改尾指针的情况发生在_。【广东工业大学 2002年】(A)变成空队列的时候(B)变成满队列的时候(C)队列只剩一个元素的
7、时候(D)任何时候19 对于循环队列,正确的是_。【哈尔滨工业大学 2007 年】(A)无法判断队列是否为空(B)无法判断队列是否为满(C)队列不可能满(D)以上说法都不对20 循环队列 A0m 一 1存放其元素值,用 front 和 rear 分别表示队头和队尾,则当前队列中的元素数是_。【南京理工大学 2001 年】【华中科技大学 2007 年】(A)(rearfront+m)m(B) rearfront+l(C) rearfront 一 1(D)rearfront21 循环队列存储在数组 A0m中,则入队时的操作为_。【中山大学 1999 年】(A)rear=rear+1(B) rear
8、=(rear+1)mod(m 一 1)(C) rear=(rear+1)modm(D)rear=(rear+1)mod(re+1)22 最大容量为 n 的循环队列,队尾指针是 rear,队头是 front,则队空的条件是_。【南京理工大学 1999 年】(A)(rear+1)MODn=front(B) rear=front(C) rear+1=front(D)(rear11MODn=front23 判定一个长度为 M 的循环队列 Q 队满的条件是。【北京交通大学 2007 年】(A)Qfront+1=Qrear(B) Qfront=Qrear+1(C) Qfront=Q rear(D)Qfro
9、nt=(Qrear+1)M24 栈和队列的共同点是。【燕山大学 2001 年】(A)都是先进先出(B)部是先进后出(C)只允许在端点处插入和删除元素(D)没有共同点25 栈 s 和队列 Q 的初始状态皆为空,元素 a1,a2,a3,a4 ,a5 和 a6 依次通过 s栈,一个元素出栈后即进入队列 Q,若 6 个元素出队列的顺序是a3,a4,a2,a1,a5 ,a6 ,则栈 s 至少应该容纳_个元素。【哈尔滨工业大学2004 年】(A)6(B) 4(C) 3(D)226 和顺序栈相比,链栈有一个比较明显的优势是_。【北京理工大学 2006 年】(A)通常不会出现栈满的情况(B)通常不会出现栈空的
10、情况(C)插入操作更容易实现(D)删除操作更容易实现27 执行_操作时,需要使用队列作辅助存储空间。【华中科技大学 2006 年】(A)查找散列表(B)广度优先搜索网(C)前序 (根)遍历二叉树(D)深度优先搜索网28 对 n 阶对称矩阵作压缩存储时,需要表长为_的顺序表【华中科技大学 2006年】(A)n2(B) n,n2(C) n(n+1)2(D)n(n 一 1)2二、综合题29 设从键盘输入一整数的序列:al,a2 ,a3,an,试编写算法实现:用栈结构存储输入的整数,当 ai一 1 时,将 ai 进栈;当 ai=一 1 时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息
11、。【南京航空航天大学 1998 年】30 设有两个栈 s1、s2 都采用顺序栈方式,并且共享一个存储区0maxsize 一 1,为了尽量利用空间,减少溢出的可能,可采用栈顶相向,迎面增长的存储方式。试设计 s1、s2 有关入栈和出栈的操作算法。【哈尔滨工业大学 2001 年】31 从键盘上输入一个逆波兰表达式,写出其求值程序。规定:逆波兰表达式的长度不超过一行,以$符作为输入结束,操作数之间用空格分隔,操作符只可能有+、一、*、四种运算。例如:23434+2*$ 。【山东师范大学 1999 年】32 设整数序列 a1,a2 , ,an,给出求解最大值的递归程序。【南京航空航天大学 2000 年
12、】33 给定一个由英文字母组成的字符串 s(假设 S 用数组实现),编制一个递归函数,测试 s 是否为回文串,“回文串”是指从左向右读该字符串和从右向左读该字符串完全相同,例如:“noon”、 “radar”等。【南京大学 2005 年】34 设一个由字母组成的字符串,编写算法对它们的字母顺序进行调整,使输出时所有大写字母都在小写字母之前,并且同类字母之间的相对位置颠倒。【华南理工大学 2005 年】例如:原有字符串为 AbcDEfiglfiJKlmn,输出序列为KJEDAnmlihgfcb。35 已知求两个正整数 m 与 n 的最大公因子的过程用自然语言可以表述为反复执行如下动作:第一步:若
13、 n 等于零,则返回 m。第二步:若 m 小于 n,则 m 与 n 相互交换:否则,保存 m,然后将 n 送 m,将保存的 m 除以 n 的余数送 n。1) 将上述过程用递归函数表达出来(设求 x 除以 y 的余数可以用 xMODy 形式表示)。2)写出求解该递归函数的非递归算法。【北京航空航天大学 2001 年】36 试将下列递归过程改写为非递归过程。【北京轻工业学院 2000 年】void test(int sum) int x;scanf(”d,x);1t(x=0)sum=0;elsetest(sum);Sum+=X;printf(“d”,sum);37 假设以带头结点的循环链表表示队列
14、,并且只设一个指针指向队尾结点,但不设头指针,请写出相应的入队列和出队列算法。【华东师范大学 2000 年】【苏州大学 2002 年】38 一个双端队列 deque 是限定在两端 endl、end2 都可进行插入和删除的线性表,队空条件是 endl+l=end2。若用顺序方式来组织双端队列,试根据下列要求,定义双端队列的结构,并给出在指定端 i(i=1,2) 的插入 enq 和删除 deq 操作的实现。1)当队满时,最多只能有一个元素空间可以是空的。2)在做两端的插入和删除时,队列中其他元素一律不动。【中南大学 2003 年】39 已知 Q 是一个非空队列,s 是一个空栈。仅用队列和栈的 AD
15、T 函数和少量工作变量,使用 C 语言编写一个算法,将队列 Q 中的所有元素逆置。栈的 ADT 函数有:【清华大学 2000 年】makeEmpty(s:stack); 置空栈push(s:stack;value:datatype); 新元素 value 进栈pop(s:stack):datatype; 出栈,返回栈顶值isEmptys:stack):Boolean; 判栈空否队列的 ADT 函数有:enqueue(q:queue;value:datatype) ; 元素 value 进队deQueue(q:queue):datatype; 出队列,返回队头值isEmpty(q:queue)
16、:boolean; 判队列空否40 设单链表的表头指针为 h,结点结构由 data 和 next 两个域构成,其中 data 域为字符型。写出算法 dc(h, n),判断该链表的前 n 个字符是否中心对称。例如:xyx、xyyx 都是中心对称。【首都经贸大学 1998 年】计算机专业基础综合数据结构(栈和队列)历年真题试卷汇编 1 答案与解析一、单项选择题1 【正确答案】 B【试题解析】 考查栈的概念。栈是一种后进先出的数据结构。【知识模块】 栈和队列2 【正确答案】 B【试题解析】 考查栈的基本性质。数据入栈时,先入栈的元素后出栈,只需简单地画图即可看出栈顶元素应是 d。【知识模块】 栈和队
17、列3 【正确答案】 C【试题解析】 考查栈的基本性质。设有 n 个不同元素时,有 f(n)种出栈序列。若第一个元素是第 i 个出栈的,则在这个元素之前是编号为 2i 的元素出栈,之后是编号为 i+1n 的元素出栈。所以第一个元素是第 i 个出栈对应 f(i-1)*f(ni)种出栈顺序。f(1)=1f(2)=2f(3)=f(2)+f(1)*f(1)+f(2)=5f(4)=f(3)+f(1)+f(2)十 f(2)+f(1)+f(3)=14f(5)=f(4)+(1)+f(3)+“2)+f(2)+f(3)*(1)+f(4)=42f(6)=f(5)+(1)+f(4)+f(2)+f(3)+f(3),f(2
18、)+f(4)+f(1)+f(5)=42+14+10+10+14+42=132【知识模块】 栈和队列4 【正确答案】 C【试题解析】 考查栈的性质。C 的情况是由以下操作得到: 1、2、3 先入栈,接着 3 弹栈,2 弹栈,然后 4、5 入栈,5 弹栈,4 弹栈,最后 1 弹栈。其他各种情况,都不可能由栈的操作得到。【知识模块】 栈和队列5 【正确答案】 B【试题解析】 考查栈的性质。考生可通过画图得出正确答案。A 是可能的:先是1、2 入栈,然后 2 弹栈,3 入栈,3 弹栈,4 入栈,4 弹栈,1 弹栈,5 入栈,5 弹栈。C 是可能的:1 和 2 入栈,2 弹栈,3 入栈,3 弹栈,1 弹
19、栈,4 入栈,4 弹栈,5 入栈,5 弹栈。D 是可能的:1 入栈,l 弹栈,2345 入栈,5432 弹栈。【知识模块】 栈和队列6 【正确答案】 C【试题解析】 考查栈的性质。对于 A,可能的顺序: 1 入栈,1 弹栈,2 入栈,2弹栈,3 入栈,3 弹栈,4 入栈,4 弹栈。对于 B,可能的顺序:1 入栈,2 入栈,3 入栈,3 弹栈,2 弹栈,4 入栈,4 弹栈,1 弹栈。对于 D,可能的顺序:1 入栈,1 弹栈,2 入栈,3 入栈,3 弹栈,2 弹栈,4 入栈,4 弹栈。C 则没有对应的序列。【知识模块】 栈和队列7 【正确答案】 D【试题解析】 考查栈的性质。A 可能的序列:a 入
20、栈,a 出栈,b 入栈,c 入栈,c 出栈,b 出栈,d 入栈, d 出栈。B 可能的序列:a、b 入栈,b 出栈,c 入栈,c出栈,d 入栈, d 出栈,a 出栈。C 可能的序列:a、b 、c 入栈,c 出栈,d 入栈,d 出栈,b 出栈,a 出栈。【知识模块】 栈和队列8 【正确答案】 B【试题解析】 考查栈的性质。本题属于比较简单的类型。正确的顺序:A 入栈,B 入栈, c 入栈,c 弹栈,B 弹栈,A 弹栈。【知识模块】 栈和队列9 【正确答案】 B【试题解析】 考查栈共享空间的问题。可以通过画图来寻找问题的解,当空间 V装满后,必有栈 1 的栈项+1=栈 2 的栈顶,即 top1+1
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考研 试卷 计算机专业 基础 综合 数据结构 队列 历年 汇编 答案 解析 DOC
