中国海洋大学 06-07数据结构 第1学期 A卷+答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
则称此二叉树为完全二叉树。 二叉排序树:或者是一棵空树,或者具有这样性质的树:(1)左子树结点的值均小于根结 点的值,(2)右子树结点的值均大于根结点的值,(3)左、右子树分别是二叉排序树。
二、填空题(共 10 分,每个填空 2 分)
1. p prior next=p next, p next prior=p prior
,b,c,d,e,f,g,h.出现概率为已知
0.07,0.08,0.13,0.22,0.18,0.23,0.04,0.05。对左子树路径赋为 0,右子树赋为 1,则
a,b,c,d,e,f,g,h,i 的哈夫曼编码为:
a:0110 b:0111 c:110 d:10 e:010 f:00 g:1110 h:1111
,
,free(p)。
2、将下三角矩阵 A[1..8,1..8]的下三角部分逐行地存储到起始地址为 1000 的内存
单元中.已知每个元素占 4 个单元,则 A(6,4)的地址为
。
3、高度为 5 的三阶 B-树至少Baidu Nhomakorabea 个结点。 4、分别采用堆排序、快速排序、插入排序和归并排序算法对初始状态已为递增序列
的数据表进行递增排序,最省时间的是
j 80 150
i 第四次交换后:28 12 20 30 44 66 61
j 200 80 150
i
j
第一趟排序结果:28 12 20 30 44 66 61 70 200 80 150
七、(6 分,依照判定树的正确比例给分) 答:二分查找的判定树如下:
11
5
16
2
8
13
19
1
3
6
9
12
14
17
20
3
A
7
4 D
2
5 C
B 3
1 E
九、(8 分)试编写一算法,实现无头结点的单链表的就地逆置,即利用原表的存储空间将线 性表(a1,a2,…,an-1,an)逆置为(an,an-1,,…,a2,a1)。
十、(8 分)设计算法以判断二叉树 T 是否为二叉排序树(设 T 中任意两个结点的值均不相等)。 (设二叉树以二叉链表来存储,结点结构为: Lchild│data│Rchild )
五、(10分)设散列表地址空间为0..6,散列函数为H(x)=i mod 7,其中i为键值x中第 一个字母在字母表中的序号,若键值的输入序列为 Jen,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,用链地址法处理冲突, 1)构造散列表;2)求出在等概率情况下,查找成功时的平均查找长度。
六、(15 分) 1 对下列数据表,写出采用希尔排序算法排序的每一趟的结果。
(100,12,20,31,1,5,44,66,61,200,30,80,150,4,8)
2 对下列数据表,写出采用快速排序算法排序的第一趟的结果。 (70,12,20,150,44,66,61,200,30,80,28)
授课 教师
[Vb,Vc,Vd, Ve] [Vc,Vd,Ve]
[Va,Vb,Vd] [Vc,Ve]
[Va,Vb,Vd, [Vc]
adj
0
2
0
0
Ve]
Vex
[Va,Vb,Vd,
adj
0
0
0
0
Ve,Vc]
(2)(8 分 ) 最小生成树为:
3
A
B
3
D
2
1
C
E
九:(8 分,依照解题思路的正确程度给分)
函数编写如下:
单链表如下图:
int Paixu(BinTree *T) { int m,n; if (!T) {
if((T→data<T→lchild→data=‖(T→data>T→rchild→data))
return 0; m=Paixu(T→(lchild));
if (!m) return 0;
n=Paixu(T→rchild); if (!n) return 0; } return 1; }
中国海洋大学命题专用 纸( 首 页 )
2006学 年 第 1 学期 试题名称 : 数据结构 (A 卷)
共 2 页 第 1页
专业年级:
学号
姓名
授课教师
分数
一、简答下列术语:(10 分) 1、算法的时间复杂度 2、栈与队列的异同 3、完全二叉树、二叉排序树
二、填空(10 分)
1、在双向循环链表 L 中,删除指针 P 所指结点的语句序列是
带权路径长度 WPL= wi li =0.07*4+0.08*4+0.13*3+022*2+0.18*3+0.23*2+0.04*4+0.05*4
=2.79 (2) (1 分) 0~7 二进制表示如下:
0.04:000, 0.05:001, 0.07:010, 0.08:011
0.13:100, 0.18:101, 0.22:110, 0.23:111
0.08
给分)
用链地址法处理冲突,构造散列表如下:
0.04
0.05
0
1
2
^
3
4
Nov ∧
Apr
Aug
Jen
Jun
Dec
∧
Oct ∧ Jul ∧
5
Sep
∧
6
Feb (2)(1 分)
Mar 平均查找长度 L=1/1
2(6*1+3*2+M3*a3y)=1∧.75
的比例
六、 (15 分) (1)(7 分,依照正确的比例给分) 初始关键字:100 12 20 31 1 5 44 66 61 200 30 80 150 4 8
算法。
三、(8 分)已知一棵二叉树的中序序列是 dcbgeahfijk,后序序列是 dcegbfhkjia, 请构造出该二叉树。
四、(10 分)假设用于通信的电文仅由 8 个字母组成,字母在电文中出现的频率分别是 0.07,0.08,0.13,0.22,0.18,0.23,0.04,0.05。请设计它们相应的哈夫曼编 码。使用 0~7 的二进制表示形式是另一种编码方案,请比较两种方案的优缺点。
(2)(8分,依照正确的比例给分) 选取 70 为枢轴
初始关键字:70 12 20 150 44 66 61 200 30 80 28
i
j
第一次交换后:28 12 20 150 44 66 61 200 30 80
i 第二次交换后:28 12 20
j 44 66 61 200 30 80 150
i 第三次交换后:28 12 20 30 44 66 61 200
2006 学年第一学期数据结构(A)卷试题答案
一、简答题 (共 10 分,每个术语 2 分) 1 算法的时间复杂度:一个算法执行所需的平均时间长度,其描述了算法效率的高低。 2 栈与队列的异同:栈是先进后出,只能在栈顶插入元素或删除元素;队列是先进先出,在
队头删除元素,队尾插入元素。 3 完全二叉树:若一棵二叉树从上到下,从左到右依次编号与满二叉树对应编号完全相同。
张海燕
命题教师或命题负责人 签字
院系负责人 签字
年月日
中国海洋大学命题专用 纸( 附 页 )
2006学 年 第 1学期
试题名称 :数据结构(A)
七、(6分)画出对应于递增有序表A[1..21]进行二分查找的判定树。
共 2 页 第 2页
八、(15 分)对如下的网,1)写出其邻接矩阵。 2)求其最小生成树。(写出各步状态)
2. 1072 3.15 4.插入排序
三、(8 分,依照所构造的二叉树正确的比例给分) 答:由二叉树的中序序列 dcbgeahfijk,后序序列 dcegbfhkjia,构造的二叉树如下:
a
b
d
g
i
h
j
四、(10 分)
c
e
f
k
答: (1) (9 分,
依照正确的比例给分)
所构造的哈夫曼树为: 假设 8 个字母分别为 a
假设各趟希尔排序的间隔分别为 7,3,1。 第一趟排序结果:8 12 20 30 1 5 4 66 61 200 31 80 150 44 100 第二趟排序结果:4 1 5 8 12 20 30 31 61 150 44 80 200 66 100 第三趟排序结果:1 4 5 8 12 20 30 31 44 61 66 80 100 150 200
带权路径长度 WPL= wi li =(0.04+0.05+0.07+0.08+0.13+0.18+0.22+0.22)*3=3>2.79
比较可知:哈夫曼编码为不等长码,信源压缩度高。
1
0.44 0.56
0.23 0.33
0.22
0.22
0.18
0.15
0.13
0.09
五、(10 分)
(1)(9 分,依照正确 0.07
4
7
10
八:(15 分)
0347
303
4025
(1)(7 分)邻接矩阵为: 73201
510
15
18
21
i 1(Vb)
Vex
Va
adj
3
Vex
adj
0
Vex
adj
0
Vex
2(Vc)
Va 4 Va 4 Vd 2 Vd
3(Vd)
Va 7 Vb 3
0
4(Ve)
Vd 1
U [Va] [Va, Vb]
V_U
P
M
N
A1
A2
A3
…
An-1
An
Status Reverse(Linklist *L) {int i=1;P=L; for(; i<L.length; i+=3﹚
{m=p→next;n=m→next;
m→next=p;n→next=m; p=n; } L→next=Null;
}
十、(8 分,依照解题思路的正确程度给分) 判断二叉树是否为二叉排序树的程序如下:
二、填空题(共 10 分,每个填空 2 分)
1. p prior next=p next, p next prior=p prior
,b,c,d,e,f,g,h.出现概率为已知
0.07,0.08,0.13,0.22,0.18,0.23,0.04,0.05。对左子树路径赋为 0,右子树赋为 1,则
a,b,c,d,e,f,g,h,i 的哈夫曼编码为:
a:0110 b:0111 c:110 d:10 e:010 f:00 g:1110 h:1111
,
,free(p)。
2、将下三角矩阵 A[1..8,1..8]的下三角部分逐行地存储到起始地址为 1000 的内存
单元中.已知每个元素占 4 个单元,则 A(6,4)的地址为
。
3、高度为 5 的三阶 B-树至少Baidu Nhomakorabea 个结点。 4、分别采用堆排序、快速排序、插入排序和归并排序算法对初始状态已为递增序列
的数据表进行递增排序,最省时间的是
j 80 150
i 第四次交换后:28 12 20 30 44 66 61
j 200 80 150
i
j
第一趟排序结果:28 12 20 30 44 66 61 70 200 80 150
七、(6 分,依照判定树的正确比例给分) 答:二分查找的判定树如下:
11
5
16
2
8
13
19
1
3
6
9
12
14
17
20
3
A
7
4 D
2
5 C
B 3
1 E
九、(8 分)试编写一算法,实现无头结点的单链表的就地逆置,即利用原表的存储空间将线 性表(a1,a2,…,an-1,an)逆置为(an,an-1,,…,a2,a1)。
十、(8 分)设计算法以判断二叉树 T 是否为二叉排序树(设 T 中任意两个结点的值均不相等)。 (设二叉树以二叉链表来存储,结点结构为: Lchild│data│Rchild )
五、(10分)设散列表地址空间为0..6,散列函数为H(x)=i mod 7,其中i为键值x中第 一个字母在字母表中的序号,若键值的输入序列为 Jen,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,用链地址法处理冲突, 1)构造散列表;2)求出在等概率情况下,查找成功时的平均查找长度。
六、(15 分) 1 对下列数据表,写出采用希尔排序算法排序的每一趟的结果。
(100,12,20,31,1,5,44,66,61,200,30,80,150,4,8)
2 对下列数据表,写出采用快速排序算法排序的第一趟的结果。 (70,12,20,150,44,66,61,200,30,80,28)
授课 教师
[Vb,Vc,Vd, Ve] [Vc,Vd,Ve]
[Va,Vb,Vd] [Vc,Ve]
[Va,Vb,Vd, [Vc]
adj
0
2
0
0
Ve]
Vex
[Va,Vb,Vd,
adj
0
0
0
0
Ve,Vc]
(2)(8 分 ) 最小生成树为:
3
A
B
3
D
2
1
C
E
九:(8 分,依照解题思路的正确程度给分)
函数编写如下:
单链表如下图:
int Paixu(BinTree *T) { int m,n; if (!T) {
if((T→data<T→lchild→data=‖(T→data>T→rchild→data))
return 0; m=Paixu(T→(lchild));
if (!m) return 0;
n=Paixu(T→rchild); if (!n) return 0; } return 1; }
中国海洋大学命题专用 纸( 首 页 )
2006学 年 第 1 学期 试题名称 : 数据结构 (A 卷)
共 2 页 第 1页
专业年级:
学号
姓名
授课教师
分数
一、简答下列术语:(10 分) 1、算法的时间复杂度 2、栈与队列的异同 3、完全二叉树、二叉排序树
二、填空(10 分)
1、在双向循环链表 L 中,删除指针 P 所指结点的语句序列是
带权路径长度 WPL= wi li =0.07*4+0.08*4+0.13*3+022*2+0.18*3+0.23*2+0.04*4+0.05*4
=2.79 (2) (1 分) 0~7 二进制表示如下:
0.04:000, 0.05:001, 0.07:010, 0.08:011
0.13:100, 0.18:101, 0.22:110, 0.23:111
0.08
给分)
用链地址法处理冲突,构造散列表如下:
0.04
0.05
0
1
2
^
3
4
Nov ∧
Apr
Aug
Jen
Jun
Dec
∧
Oct ∧ Jul ∧
5
Sep
∧
6
Feb (2)(1 分)
Mar 平均查找长度 L=1/1
2(6*1+3*2+M3*a3y)=1∧.75
的比例
六、 (15 分) (1)(7 分,依照正确的比例给分) 初始关键字:100 12 20 31 1 5 44 66 61 200 30 80 150 4 8
算法。
三、(8 分)已知一棵二叉树的中序序列是 dcbgeahfijk,后序序列是 dcegbfhkjia, 请构造出该二叉树。
四、(10 分)假设用于通信的电文仅由 8 个字母组成,字母在电文中出现的频率分别是 0.07,0.08,0.13,0.22,0.18,0.23,0.04,0.05。请设计它们相应的哈夫曼编 码。使用 0~7 的二进制表示形式是另一种编码方案,请比较两种方案的优缺点。
(2)(8分,依照正确的比例给分) 选取 70 为枢轴
初始关键字:70 12 20 150 44 66 61 200 30 80 28
i
j
第一次交换后:28 12 20 150 44 66 61 200 30 80
i 第二次交换后:28 12 20
j 44 66 61 200 30 80 150
i 第三次交换后:28 12 20 30 44 66 61 200
2006 学年第一学期数据结构(A)卷试题答案
一、简答题 (共 10 分,每个术语 2 分) 1 算法的时间复杂度:一个算法执行所需的平均时间长度,其描述了算法效率的高低。 2 栈与队列的异同:栈是先进后出,只能在栈顶插入元素或删除元素;队列是先进先出,在
队头删除元素,队尾插入元素。 3 完全二叉树:若一棵二叉树从上到下,从左到右依次编号与满二叉树对应编号完全相同。
张海燕
命题教师或命题负责人 签字
院系负责人 签字
年月日
中国海洋大学命题专用 纸( 附 页 )
2006学 年 第 1学期
试题名称 :数据结构(A)
七、(6分)画出对应于递增有序表A[1..21]进行二分查找的判定树。
共 2 页 第 2页
八、(15 分)对如下的网,1)写出其邻接矩阵。 2)求其最小生成树。(写出各步状态)
2. 1072 3.15 4.插入排序
三、(8 分,依照所构造的二叉树正确的比例给分) 答:由二叉树的中序序列 dcbgeahfijk,后序序列 dcegbfhkjia,构造的二叉树如下:
a
b
d
g
i
h
j
四、(10 分)
c
e
f
k
答: (1) (9 分,
依照正确的比例给分)
所构造的哈夫曼树为: 假设 8 个字母分别为 a
假设各趟希尔排序的间隔分别为 7,3,1。 第一趟排序结果:8 12 20 30 1 5 4 66 61 200 31 80 150 44 100 第二趟排序结果:4 1 5 8 12 20 30 31 61 150 44 80 200 66 100 第三趟排序结果:1 4 5 8 12 20 30 31 44 61 66 80 100 150 200
带权路径长度 WPL= wi li =(0.04+0.05+0.07+0.08+0.13+0.18+0.22+0.22)*3=3>2.79
比较可知:哈夫曼编码为不等长码,信源压缩度高。
1
0.44 0.56
0.23 0.33
0.22
0.22
0.18
0.15
0.13
0.09
五、(10 分)
(1)(9 分,依照正确 0.07
4
7
10
八:(15 分)
0347
303
4025
(1)(7 分)邻接矩阵为: 73201
510
15
18
21
i 1(Vb)
Vex
Va
adj
3
Vex
adj
0
Vex
adj
0
Vex
2(Vc)
Va 4 Va 4 Vd 2 Vd
3(Vd)
Va 7 Vb 3
0
4(Ve)
Vd 1
U [Va] [Va, Vb]
V_U
P
M
N
A1
A2
A3
…
An-1
An
Status Reverse(Linklist *L) {int i=1;P=L; for(; i<L.length; i+=3﹚
{m=p→next;n=m→next;
m→next=p;n→next=m; p=n; } L→next=Null;
}
十、(8 分,依照解题思路的正确程度给分) 判断二叉树是否为二叉排序树的程序如下: