1、天大考试数据结构离线作业考核试题数据结构要求:一、独立完成,下面五组题目中,请任选其中一组题目作答,总分值100分;二、答题步骤:1.利用A4纸打印学院指定答题纸(答题纸请详见附件);2.在答题纸上利用黑色水笔按题目要求手写作答;答题纸上全数信息要求手写,包括中心、学号、姓名、科目、答题组数等大体信息和答题内容,请写明题型、题号;三、提交方式:请将作答完成后的整页答题纸以图片形式依次粘贴在一个Word文档中上传(只粘贴部份内容的图片不给分),图片请维持正向、清楚;1.上传文件命名为“中心-学号-姓名-科目.doc” 2.文件容量大小:不得超过20MB。提示:未按要求作答题目的作业及类似作业,成
2、绩以0分记!题目如下:第一组:一、编程题(每题30分,共60分)(一)关于二维整数数组Amn,对以下三种情形,别离编写相应的函数。1.求数组所有边缘元素的数值和。int sum1(int AMN,int m ,int n)2.求从A00开始的互不相邻的所有元素的和注:一个元素的八个方向上的第一个元素均为相邻元素。int sum2 (int AMN , int m , int n)3. 假定m=n,并为偶数,请别离计算正、反两条对角线上的元素值之和。int sum3(int AMN , int n)(二)已知某哈希表的装载因子小于1,哈希函数H(key)为关键字(标识符)的第一个字母在字母表中的
3、序号,处置冲突的方式为线性探测开放定址法。试编写一个按第一个字母的顺序输出哈希表中所有关键字的算法。二、解答题(20分)(一)设待排序记录的关键字序列为46, 55, 13, 42, 94, 05, 17, 70写出其第一趟快速排序进程。(要求写出每次互换后的序列,而且枢轴记录到位也算一次互换)初始关键字: 46 55 13 42 94 05 17 701次互换后:2次互换后:3次互换后:4次互换后:5次互换后:三、画图题(20分)(一)已知二维数组表示的图的邻接矩阵如以下图所示。试别离画出自极点1动身进行遍历所得的深度优先生成树和广度优先生成树。第二组:一、编程题(每题30分,共60分)(一
4、)设顺序表L是一个递增有序表,试写一算法,将x插入L中,并使L仍是一个有序表。(二)用标准C语言实现Hanoi塔问题二、解答题(20分)(一)对下面的带权无向图采纳prim算法从极点开始构造最小生成树。(写出加入生成树极点集合S和选择Edge的顺序) 9 10 7 5 6 7 11 8S:顶点号Edge:(顶点,顶点,权值)(,)(,)(,)(,)(,)1三、画图题(20分)(一)将给定的图简化为最小的生成树,要求从极点1动身。13254768515310122796第三组:一、编程题(每题30分,共60分)(一)1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链
5、表中结点空间设计出三个单链表的算法,使每一个单链表只包括同类字符。2.设计在链式存储结构上互换二叉树中所有结点左右子树的算法。(二)1.设有一组初始记录关键字序列(K1,K2,Kn),要求设计一个算法能够在O(n)的时刻复杂度内将线性表划分成两部份,其中左半部份的每一个关键字均小于Ki,右半部份的每一个关键字均大于等于Ki。2设有两个集合A和集合B,要求设计生成集合C=AB的算法,其中集合A、B和C用链式存储结构表示。二、解答题(20分)(一)假设二叉树中各结点的值均不相同,那么由二叉树的前序序列和中序序列,或由其后序序列和中序序列均能唯一地确信一棵二叉树,但由前序序列和后序序列却不必然能唯一
6、地确信一棵二叉树。 (1)已知一棵二叉树的前序序列和中序序列别离为ABDGHCEFI和GDHBAECIF,请画出此二叉树。 (2)已知一棵二叉树的在序序列和后序序列别离为BDCEAFHG和DECBHGFA,请画出此二叉树。 (3)已知一棵二叉树的前序序列和后序序列别离为AB和BA,请画出这两棵不同的二叉树。三、画图题(20分)(一)某子系统在通信联络中只可能显现8种字符,其显现的概率别离为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11试设计赫夫曼编码23115329147800000001111111第四组:一、编程题(每题30分,共60分)(一)关于二维整数数
7、组Amn,对以下三种情形,别离编写相应的函数。1.求数组所有边缘元素的数值和。int sum1(int AMN,int m ,int n)2.求从A00开始的互不相邻的所有元素的和注:一个元素的八个方向上的第一个元素均为相邻元素。int sum2 (int AMN , int m , int n)3. 假定m=n,并为偶数,请别离计算正、反两条对角线上的元素值之和。int sum3(int AMN , int n)(二)1.设有一组初始记录关键字序列(K1,K2,Kn),要求设计一个算法能够在O(n)的时刻复杂度内将线性表划分成两部份,其中左半部份的每一个关键字均小于Ki,右半部份的每一个关键
8、字均大于等于Ki。2设有两个集合A和集合B,要求设计生成集合C=AB的算法,其中集合A、B和C用链式存储结构表示。二、解答题(20分)(一)写出以下图所示的AOV网的可能拓扑序列,要求至少写出五个ABCDEF三、画图题(20分)(一)将给定的图简化为最小的生成树,要求从极点1动身。13254768515310122796第五组:一、编程题(每题30分,共60分)(一)用标准C语言实现Hanoi塔问题(二)1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表中结点空间设计出三个单链表的算法,使每一个单链表只包括同类字符。2.设计在链式存储结构上互换二叉树中所有结点左右子树的算法。二、解答题(20分)(一)已知一棵二叉树的先序序列是ABCDEFGHIJK,中序序列是CDBGFEAHJIK,请构造出该二叉树。三、画图题(20分)(一)设有序顺序表中的元素依次为017, 094, 154, 170, 275,503, 509, 512, 553, 612, 677, 765, 897, 908。试画出对其进行折半搜索时的判定树, 并计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。