《数据结构》考研真题及解答
目 录
2009 年试题 ............................................................................. 1
填空题 ............................................................................. 1 解答题 ............................................................................. 2 2010 年试题 ............................................................................. 2
填空题 ............................................................................. 2 解答题 ............................................................................. 4 2011 年试题 ............................................................................. 4
填空题 ............................................................................. 4 解答题 ............................................................................. 5 2012 年试题 ............................................................................. 6
填空题 ............................................................................. 6 解答题 ............................................................................. 7 2013 年试题 ............................................................................. 8 填空题 ............................................................................. 8
解答题 ............................................................................. 9 2014 年试题 ............................................................................ 10
填空题 ............................................................................ 10 解答题 ............................................................................ 11 2015 年试题 ............................................................................ 12
填空题 ............................................................................ 12 解答题 ............................................................................ 14
2009 年试题
填空题
1. 为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要
输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是
A.栈 B.队列 C.树 D.图
2. 设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S。若每个元素出栈后立即进入队列 Q,且 7 个元素出队的顺序是 bdcfeag,则栈 S 的容量至少是
A.1 B.2 C.3 D.4
3. 给定二叉树图所示。设 N 代表二叉树的根,L 代表根结点的左子树,R 代表根结点的右子树。若遍历后的结点序列为 3,1,7,5,6,2,4,则其遍历方式是
A.LRN
B.NRL C.RLN D.RNL
4. 下列二叉排序树中,满足平衡二叉树定义的是
5. 已知一棵完全二叉树的第 6 层(设根为第 1 层)有 8 个叶结点,则完全二叉树的结点个数最多是
A.39 B.52 C.111 D.119
6. 将森林转换为对应的二叉树,若在二叉树中,结点 u 是结点 v 的父结点的父结点,则在原来的森林中,u 和 v 可能具有的关系是 I.父子关系 II.兄弟关系 III.u 的父结点与
v 的父结点是兄弟关系 A.只有 II B.I 和 II
C.I 和 III D.I、II 和 III
7. 下列关于无向连通图特性的叙述中,正确的是
I.所有顶点的度之和为偶数 II.边数大于顶点个数减 1 III.至少有一个顶点的度为 1
1
A.只有 I B.只有 II C.I 和 II D.I 和 III
8. 下列叙述中,不符合 m 阶 B 树定义要求的是
A.根节点最多有 m 棵子树 B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接
9.已知关键序列 5,8,12,19,28,20,15,22 是小根堆(最小堆),插入关键字 3,调整后得到的小根堆是
A.3,5,12,8,28,20,15,22,19 B.3,5,12,19,20,15,22,8,28 C.3,8,12,5,20,15,22,28,19 D.3,12,5,8,28,20,15,22,19
10. 若数据元素序列 11,12,13,7,8,9,23,4,5 是采用下列排序方法之一得到的第二趟
排序后的结果,则该排序算法只能是
A.起泡排序 B.插入排序 C.选择排序
解答题
D.二路归并排序
41.(10 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从
初始顶点到目标顶点之间的一条最短路径。假定从初始顶点到目标顶点之间存在路径, 现有一种解决该问题的方法:
①设最短路径初始时仅包含初始顶点,令当前顶点 u 为初始顶点;
②选择离 u 最近且尚未在最短路径中的一个顶点 v,加入到最短路径中,修改当前顶点u=v;
③重复步骤②,直到 u 是目标顶点时为止。
请问上述方法能否求得最短路径?若该方法可行,请证明之;否则,请举例说明。 42.(15 分)已知一个带有表头结点的单链表,结点结构为
data link
假设该链表只给出了头指针 list。在不改变链表的前提下,请设计一个尽可能高效的算
法,查找链表中倒数第 k 个位置上的结点(k 为正整数)。若查找成功,算法输出该结点的 data 值,并返回 1;否则,只返回 0。要求: (1) 描述算法的基本设计思想 (2) 描述算法的详细实现步骤 (3) 根据设计思想和实现步骤,采用程序设计语言描述算法(使用 C 或 C++或 JAVA 语
言实现),关键之处请给出简要注释。
2010 年试题
填空题
1、若元素 a,b,c,d,e,f 依次进栈,允许进栈、退栈操作交替进行。但不允许连续三次进行退栈
工作,则不可能得到的出栈序列是( )
A:dcebfa B:cbdaef C:dbcaef D:afedcb 2、某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作,则不可能得到的顺序是
( )
2
A:bacde
B:dbace C:dbcae D:ecbad
3、下列线索二叉树中(用虚线表示线索),符合后序线索树定义的是( )
4、在下列所示的平衡二叉树中插入关键字 48 后得到一棵新平衡二叉树,在新平衡二叉树中,
关键字 37 所在结点的左、右子结点中保存的关键字分别是( )
A:13,48 B:24,48 C:24,53 D:24,90
5、在一棵度为 4 的树 T 中,若有 20 个度为 4 的结点,10 个度为 3 的结点,1 个度为 2 的结
点,10 个度为 1 的结点,则树 T 的叶节点个数是( ) A:41 B:82 C:113 D:122 6、对 n(n 大于等于 2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,错误的是
( ) A:该树一定是一棵完全二叉树B:树中一定没有度为 1 的结点
C:树中两个权值最小的结点一定是兄弟结点
D:树中任一非叶结点的权值一定不小于下一任一结点的权值 7、若无向图 G-(V.E)中含 7 个顶点,则保证图 G 在任何情况下都是连通的,则需要的边数
最少是( )
A:6 B:15 C:16 D:21 8、对下图进行拓补排序,可以得到不同的拓补序列的个数是( )
3