808试卷构成
-
10道单选题,每题1分
-
4道简答题,每题 5 分
-
5道综合应用题,每题 10 分
-
4道算法设计题,每题15 分
一、选择题
(1)含n 个结点的线性表采用数组实现,算法的时间复杂度为O(1)的操作是()
-
A. 访问第 i个结点和求第i个结点的直接前驱
-
B. 在第 i个结点后插入一个新结点
-
C. 删除第i个结点
-
D. 以上都不对
(2)在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个( )结构。
-
A.栈 B.队列 C.数组 D.线性表
(3)从栈顶指针为top的链栈中删除一个结点,用x保存被删除结点的值,则执行( )。
-
A. x = top; top = top ->next;
-
B. x= top -> data;
-
C. top= top -> next;x= top -> data;
-
D. x = top -> data; top = top -> next;
(4)二维数组A的每个元素是由6个字符组成的申,行下标的范围从。0〜8,列下标的范围是从0〜9,若A按行优先方式存储,元素A[8][5]的起始地址与当A按列优先方式存储时元素()的起始地址一致。
-
A. A[8][5] B. A[3][10]C. A[5][8] D.A[4][9]
(5)对一棵具有n个结点的树,树中所有结点的度数之和为()
-
A. n B. n-2 C. n-1 D. n+1
(6)一棵二叉树的前序遍历序列为 ABCDEFG,它的中序遍历序列可能是()。
-
A. CABDEFG B. BCDAEFG C. DACEFBG D. ADBCFEG
(7)为 5 个使用频率不等的字符设计哈夫曼编码,不可能的方案是( )。
-
A. 000,001,010,011,1 B. 0000,0001,001,01,1
-
C. 000,001,01,10,11 D. 00,100,101,110,111
(8)有向图 G=(V,E),顶点集V={V0,V1,V2,V3}
,边集E={<V0,V1>,<V0,V2>,<V0,V3>,<V1,V3>},从 V0 开始的深度优先遍历,不同的遍历序列个数是()
-
A. 5 B. 4 C. 3 D.2
(9)按{12,24,36,90,52,30}的顺序构成的平衡二叉树,其根结点是()。
-
A. 24 B. 36 C. 52 D.30
(10)下述排序方法中,时间性能与待排序记录的初始状态无关的是()
-
A.插入排序和快速排序 B.归并排序和快速排序
-
C.选择排序和归并排序 D.插入排序和归并排序
答案
1-5:ABDDC 6-10:BDDBC
二、简答题(一个 5 分,一共 4 个小题)
(1) 设有数据结构(D,R),其中D={1,2,3,4,5,6},R={(1,2),(2,3),(2,4),(3,4), (3,5), (3,6), (4,5), (4,6)}。试画出其逻辑结构图并指出属于何种结构。
(2)单链表带头结点与不带头结点为空的判断条件(假设头指针是 first),分别画出存储示意图。
(3)若用一个长度为 6 的数组来实现循环队列,且当前rear 和 front 的值分别为 0 和 3,则从队列中删除一个元素, 再增加两个元素后,rear 和 front 的值分别为( )。
(4)设无向图 G 含有n 个顶点 e 条边,每个顶点的信息(假设只存储编号)占用 2 个字节,每条边的权值信息占用 4 个字节,每个指针占用 4 个字节,计算采用邻接矩阵和邻接表分别占用多少存储空间?
三、综合应用题(一个 10 分,一共 5 个小题)
- 设某二叉树采用如下图所示存储,data 代表元素值, lchild 代表结点的左孩子,rchild 代表结点的右孩子。请说明这种存储结构的设计思想并画出对应二叉树。
下标
1
2
3
4
5
6
7
8
data
a
b
c
d
e
f
g
h
lchild
2
3
0
0
6
0
8
0
rchild
5
0
4
0
7
0
0
0
- 设有如右图 AOE 网,给出 AOE 网的所有关键路径。
(3)设有序序列(10,15,20,25,30)的查找概率为
(p1=0.2,p2=0.15,p3=0.1,p4=0.03,p5=0.01)不成功概率 为 (q0=0.2,q1=0.15,q2=0.1,q3=0.03,q4=0.02, q5=0.01)。求折半查找判定树,成功和不成功的平均查找长度
(4)关键码集合{47,7,29,11,16,92,22,8,3}散列表的表长为 14,散列函数 H(key)=key mod 11。用拉链法处理冲突,构造散列表,求查找成功的平均长度。
(5)长度为 10 的无序序列,快速排序最好情况和最坏情况的一个初始排列实例,采用判定树模型说明比较次数可能达到的最大值和最小值。
四、算法设计题(一个 15 分,一共 4 个小题)
- 在整型数组中 r[n]中删除所有值为 x 的元素,要求时间复杂度为O(n),空间复杂度为 o(1)。
- 设待排序的记录序列用单链表存储结构,单链表存储结构定义如下,请写出直接插入排序算法。
typdef int DataType; typedef struct Node
{
DataType data; StructNode *next;
}Node;
Node *first;
3.二叉链表存储结构定义如下,请判断两棵二叉树是否相似,所谓两棵二叉树相似,是指要么它们都为空或都只有一个结点,要么它们的左右子树均相似。
Typedef char DataType; Typedef struct BiNode
{
DataType data;
Struct BiNode *lchild,*rchild;
}BiNode;
Node *root;
4.请给出图的邻接矩阵存储结构定义,基于邻接矩阵存储结构求无向图的深度优先生成树。