天大2016年12月《数据结构》期末大作业考核要求
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构
要求:
1. 独立完成,作答时要按照模版信息....填写完整,写明题型、题号;
2. 作答方式:手写作答或电脑录入,使用学院统一模版(模版详见附件);
3. 提交方式:以下两种方式任选其一,
1) 手写作答的同学可以将作业以图片形式打包压缩上传; 2) 提交电子文档的同学可以将作业以word 文档格式上传;
4. 上传文件命名为“中心-学号-姓名-科目.rar ” 或“中心-学号-姓名-科目.doc ”;
5. 文件容量大小:不得超过10MB 。
请在以下几组题目中,任选一组题目作答,满分100分。
第一组:
一、编程题(每小题30分,共60分)
(一) 设顺序表L 是一个递增有序表,试写一算法,将x 插入L 中,并使L 仍是一个有序表。 (二) 用标准C 语言实现Hanoi 塔问题
二、解答题(20分)
(一)
对下面的带权无向图采用prim 算法从顶点①开始构造最小生成树。(写出加入生成树顶点集合S 和选择Edge 的顺序)
①
9 10
② 7 ③
5 6 7
④ ⑤
11 8
三、画图题(20分)
(一)
将给定的图简化为最小的生成树,要求从顶点1出发。
第二组:
一、编程题(每小题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) {
(二)
1.设计在单链表中删除值相同的多余结点的算法。
2.设计一个求结点x在二叉树中的双亲结点算法。
二、解答题(20分)
(一)已知一棵二叉树的先序序列是ABCDEFGHIJK,中序序列是CDBGFEAHJIK,请构造出该
二叉树。
三、画图题(20分)
(一)已知一棵二叉树的前序遍历的结果是ABECDFGHIJ, 中序遍历的结果是EBCDAFHIGJ,
试画出这棵二叉树,并给出这棵二叉树的后序遍历序列。
第三组:
一、编程题(每小题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)
{
(二)
设顺序表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.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。
2. 设计在链式存储结构上交换二叉树中所有结点左右子树的算法。
(二)
1.设计在单链表中删除值相同的多余结点的算法。
2. 设计一个求结点x 在二叉树中的双亲结点算法。
二、解答题(20分)
(一)
对下面的带权无向图采用prim 算法从顶点①开始构造最小生成树。(写出加入生成树顶点集合S 和选择Edge 的顺序)
①
9 10
② 7 ③
5 6 7
④ ⑤
11 8
三、画图题(20分)
(一)
已知一树的双亲表示法如下,其中各兄弟结点是依次出现的,画出该树对应的二叉树。 data paren t
第五组:
一、编程题(每小题30分,共60分)
(一)