数据结构试卷(二)
一、选择题(24 分)
1.下面关于线性表的叙述错误的是( )。
(A) 线性表采用顺序存储必须占用一片连续的存储空间
(B) 线性表采用链式存储不必占用一片连续的存储空间
(C) 线性表采用链式存储便于插入和删除操作的实现
(D) 线性表采用顺序存储便于插入和删除操作的实现
2.设哈夫曼树中的叶子结点总数为 m,若用二叉链表作为存储结构,则该哈夫曼树中总共
有( )个空指针域。
(A) 2m-1 (B) 2m (C) 2m+1 (D) 4m
3.设顺序循环队列 Q[0:M-1]的头指针和尾指针分别为 F 和 R,头指针 F 总是指向队头元素
的前一位置,尾指针 R 总是指向队尾元素的当前位置,则该循环队列中的元素个数为
( )。
(A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M
4.设某棵二叉树的中序遍历序列为 ABCD,前序遍历序列为 CABD,则后序遍历该二叉树
得到序列为( )。
(A) BADC (B) BCDA (C) CDAB (D) CBDA
5.设某完全无向图中有 n 个顶点,则该完全无向图中有( )条边。
(A) n(n-1)/2 (B) n(n-1) (C) n
2
(D) n
2
-1
6.设某棵二叉树中有 2000 个结点,则该二叉树的最小高度为( )。
(A) 9 (B) 10 (C) 11 (D) 12
7.设某有向图中有 n 个顶点,则该有向图对应的邻接表中有( )个表头结点。
(A) n-1 (B) n (C) n+1 (D) 2n-1
8.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字 5 为基准进行一趟快
速排序的结果为( )。
(A) 2,3,5,8,6 (B) 3,2,5,8,6
(C) 3,2,5,6,8 (D) 2,3,6,5,8
二、填空题(24 分)
1. 为了能有效地应用 HASH 查找技术,必须解决的两个问题是____________________和
__________________________。
2. 下面程序段的功能实现数据 x 进栈,要求在下划线处填上正确的语句。
typedef struct {int s[100]; int top;} sqstack;
void push(sqstack &stack,int x)
{
if (stack.top==m-1) printf(“overflow”);
else {____________________;_________________;}
}
3. 中序遍历二叉排序树所得到的序列是___________序列(填有序或无序)。
4. 快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。