2012 年云南昆明理工大学数据结构考研真题 A 卷
一、单项选择题:(每题 3 分,共 30 分)
1.长度为 n 的顺序表,等概率情况下插入一个元素时平均要移动表中的( )个元素。
A.n/2
B.(n+1)/2
C.(n-l)/2
D.n
2.循环队列 Q 的存储空间为 0 至 m-1,用 front 表示队头,用 rear 表示队尾,采用少
用一个单元的方法来区分队列空和满,那么循环队列满的条件是( )。
A.Q.rear+l==Q.front
C. Q.front+l==Q.rear
B.(Q.rear+1)%m==Q.front
D.(Q.front+l)%m==Q.rear
3.若从二叉树的任意结点出发到根的路径上所经过的结点序列按其关键字有序,则该
二叉树是( )。
A.二叉排序树
B.完全二叉树
C.堆
D.平衡二叉树
4.给定关键字的集合为{20,15,14,18,21,36,40,10},一趟快速排序结束时键
值的排列为( )。
A.10,15,14,18,20,36,40,21
B.10,15,14,18,20,40,36,
21
21
C.10,15,14,20,18,40,36,21
D.15,10,14,18,20,36,40,
5.在一棵度为 3 的树中,度为 3 的结点有 2 个,度为 2 的结点有 1 个,度为 1 的结点
有 3 个,那么该树有( )个叶结点。
C.6
A.4
B.5
D.7
6.下列排序方法在排序过程中,关键码比较的次数与记录的初始排列顺序无关的是
( )。
A.直接插入排序和快速排序
C.直接选择排序和归并排序
B.快速排序和归并排序
D.直接插入排序和归并排序
7.具有 4 层结点的二叉平衡树至少有( )个结点。
A.8
B.6
C.15
D.7
8.当输入数据非法时,一个好的算法应该作出适当的处理,而不会产生莫名其妙的结
果,这称做算法的( )。
A.正确性
B.可读性
C.健壮性
D.有穷性
9.三元组表用于表示( )。
B.索引表
A.线性表
C.广义表
D.稀疏矩阵
10.对于初始状态递增有序的表按从小到大的次序排序,时间效率最高的是( )。
A.快速排序
B.插人排序
C.堆排序
D.基数排序
二、判断题(每题 2 分,共 20 分)
1.在单链表中存取某个元素,只要知道指向该元素的指针,因此单链表是随机存取的
存储结构。( )
2.若一个有向图的邻接矩阵中对角线以下的元素均为零,则该图的拓扑序列必定存在。
( )
3.消除递归必须用栈来实现。( )
4.稀疏矩阵压缩存储后必会失去随机存取的功能。( )
5.堆排序所需要附加空间数取决于待排序的记录的个数。( )
6.在二叉排序树上删除一个结点时,不必移动其他结点,只要将该结点相应的指针域
置空即可。( )
7.采用线性探测法处理冲突时,当从散列表中删除一个记录时,不应将这个记录的所
在位置置为空,因为这将会影响以后的查找。( )
8.对于 n 个顶点的无向图,若其边数大于或等于 n-1,则其必是连通图。( )
9.一棵完全二叉树中的结点若无左孩子,则其必是叶结点。( )
10.将二叉排序树的中序序列中的关键字依次插入初始为空的树中,所得到的二叉排
序树与原二叉排序树是相同的。( )
三、简答题(共 55 分)
1.线性表的顺序存储结构具有三个弱点:其一,在作插入或删除操作时,需移动大量元素;
其二,由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;其
三,表的容量难以扩充。线性表的链式存储结构是否一定都能够克服上述三个弱点,试讨
论之。(共 10 分)
2. 一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来。试求出空格
处的内容,并画出该二叉树。(共 15 分,每个序列 3 分,画出二叉树 6 分)
_ G HI
_ K
先序序列: _
中序序列:CB
后序序列:_
3.(共 15 分)
_ CDE
_
EFDB
_ FA
_ JKIG
_ JIH _ A
(1)什么叫 AOE 网?(4 分)
(2)对如下图所示的 AOE 网,计算每个事件的最早发生时间和最迟发生时间以及每个
活动的最早发生时间和最迟发生时间。(7 分)
(3)请画出关键路径,并回答提高哪些活动的效率可以缩短工期?(4 分)
图二
4. 设用于通讯的电文仅由 8 个字母 C1,C2,…,C8 构成,字母在电文中出现的频率分别为:
5、25、3、6、10、11、36、4。试为这 8 个字母设计哈夫曼编码。(共 15 分,画图 10 分,
写出编码 5 分)
四、以关键字序列{29,18,25,47,58,12,51,10}为例,试写出执行大根堆排序算法
的各趟排序结果时,关键字序列的状态。(共 10 分,创建堆 2 分,其余每步骤 1 分)
五、设有一个由正整数组成的无序单链表,编写完成下列功能的算法:(共 15 分,每小题 5
分)
(1)找出最小值结点,且打印该数值;
(2)若该数值是奇数,则将其与直接后继结点的值交换;
(3)若该数值是偶数,则将其直接后继结点删除。
六、快速排序算法中,如何选取一个界值(枢轴元素),影响着快速分类的效率,而且界值
也并不一定是被分类序列中的一个元素。例如,可以用被分类序列中所有元素的平均值作
为界值。试编写算法实现以平均值为界值的快速分类方法。(共 20 分)