| 
 | 
 
数据结构 
要求: 
独立完成,下面已将五组题目列出,请任选一组题目作答,满分100分; 
二、答题步骤: 
使用A4纸打印学院指定答题纸(答题纸请详见附件); 
在答题纸上使用黑色水笔按题目要求手写作答;答题纸上全部信息要求手写,包括中心、学号、姓名、科目、答题组数等基本信息和答题内容,请写明题型、题号; 
三、提交方式:请将作答完成后的整页答题纸以图片形式依次粘贴在一个Word 
    文档中上传(只粘贴部分内容的图片不给分),图片请保持正向、清晰; 
上传文件命名为“中心-学号-姓名-科目.doc”  
文件容量大小:不得超过10MB。 
提示:未按要求作答题目的作业及雷同作业,成绩以0分记! 
 
题目如下: 
 
第一组: 
一、编程题(每小题30分,共60分) 
 
对于二维整数数组A[m][n],对下列三种情况,分别编写相应的函数。 
1.求数组所有边缘元素的数值和。 
int sum1(int A[M][N],int m ,int n) 
{ 
2.求从A[0][0]开始的互不相邻的所有元素的和 
注:一个元素的八个方向上的第一个元素均为相邻元素。 
int sum2 (int A[M][N] , int m , int n) 
{ 
3. 假定m=n,并为偶数,请分别计算正、反两条对角线上的元素值之和。 
int sum3(int A[M][N] , int n) 
{ 
 
 
设计在单链表中删除值相同的多余结点的算法。? 
设计一个求结点x在二叉树中的双亲结点算法。? 
 
二、解答题(20分) 
已知一棵二叉树的先序序列是ABCDEFGHIJK,中序序列是CDBGFEAHJIK,请构造出该二叉树。 
 
三、画图题(20分) 
已知一棵二叉树的前序遍历的结果是ABECDFGHIJ, 中序遍历的结果是EBCDAFHIGJ, 试画出这棵二叉树,并给出这棵二叉树的后序遍历序列。 
 
 
 
 
 
第二组: 
一、编程题(每小题30分,共60分) 
 
已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。 
 
设顺序表L是一个递增有序表,试写一算法,将x插入L中,并使L仍是一个有序表。 
 
二、解答题(20分) 
 
 
写出下图所示的AOV网的可能拓扑序列,要求至少写出五个 
 
 
 
 
 
 
 
 
 
 
三、画图题(20分) 
 
设有序顺序表中的元素依次为017, 094, 154, 170, 275,503, 509, 512, 553, 612, 677, 765, 897, 908。试画出对其进行折半搜索时的判定树, 并计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。 
 
 
 
 
 
第三组: 
一、编程题(每小题30分,共60分) 
 
对于二维整数数组A[m][n],对下列三种情况,分别编写相应的函数。 
求数组所有边缘元素的数值和。 
int sum1(int A[M][N],int m ,int n) 
{ 
2.求从A[0][0]开始的互不相邻的所有元素的和 
注:一个元素的八个方向上的第一个元素均为相邻元素。 
int sum2 (int A[M][N] , int m , int n) 
{ 
3. 假定m=n,并为偶数,请分别计算正、反两条对角线上的元素值之和。 
int sum3(int A[M][N] , int n) 
{ 
 
设顺序表L是一个递增有序表,试写一算法,将x插入L中,并使L仍是一个有序表。 
二、解答题(20分) 
 
设有一个求解汉诺塔(Hanoi)的递归算法 
voidHANOI (int n , int peg1 , int peg2 , int peg3) 
{ 
if (n= =1)  
printf(”move %d to %d\n”,peg1,peg3); 
else 
{ 
HANOI (n-1, peg1, peg3, peg2); 
printf(”move %d to %d\n”,peg1,peg3); 
HANOI (n-1, peg2, peg1, peg3) ; 
 } 
} 
假定采用HANOI(3,1,2,3)去调用上述算法,则写出整个输出结果的前四行内容。 
 
三、画图题(20分) 
 
某子系统在通信联络中只可能出现8种字符,其出现的概率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11试设计赫夫曼编码 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
第四组: 
一、编程题(每小题30分,共60分) 
 
已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的序号,处理冲突的方法为线性探测开放定址法。试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。 
 
用标准C语言实现Hanoi塔问题 
二、解答题(20分) 
 
设待排序记录的关键字序列为{46, 55, 13, 42, 94, 05, 17, 70}写出其第一趟快速排序过程。(要求写出每次交换后的序列,并且枢轴记录到位也算一次交换) 
 
初始关键字:  46   55   13   42   94   05   17   70 
1次交换后: 
2次交换后: 
3次交换后: 
4次交换后: 
5次交换后: 
三、画图题(20分) 
 
将下面的森林变换成二叉树 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
第五组: 
一、编程题(每小题30分,共60分) 
 
1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表 
中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。 
2.?设计在链式存储结构上交换二叉树中所有结点左右子树的算法。? 
 
设计在单链表中删除值相同的多余结点的算法。? 
设计一个求结点x在二叉树中的双亲结点算法。? 
二、解答题(20分) 
 
对下面的带权无向图采用prim算法从顶点①开始构造最小生成树。(写出加入生成树顶点集合S和选择Edge的顺序) 
                                                                                                   
① 
                 9          10 
②      7       ③ 
            5            6         7 
④            ⑤             ⑥ 
               11            8 
 
S: 
顶点号 
? 
? 
? 
? 
? 
? 
? 
Edge: 
? 
(顶点,顶点,权值) 
 
 
① 
 
 
(,,) 
 
 
① 
 
 
(,,) 
 
 
① 
 
 
(,,) 
 
 
① 
 
 
(,,) 
 
 
① 
 
 
(,,) 
 
 
 
 
 
 
 
 
三、画图题(20分) 
 
已知一树的双亲表示法如下,其中各兄弟结点是依次出现的,画出该树对应的二叉树。 
 
 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
 
data 
A 
B 
C 
D 
E 
F 
G 
H 
I 
J 
K 
L 
M 
N 
O 
 
parent 
0 
1 
1 
1 
2 
2 
3 
3 
4 
4 
5 
6 
6 
7 
8 
 
 
 
 
 
本帖由易百网整理发布www.openhelp100.com 
 
 |   
 
 
 
 |