c语言数据结构大作业答案,天大2016年12月《数据结构》期末大作业考核要求

要求:

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

S:        顶点号

Edge:

(顶点,顶点,权值)

①                        (,,)

①                        (,,)

①                        (,,)

①                        (,,)

①                        (,,)

三、画图题(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

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

第五组:

一、编程题(每小题30分,共60分)

(一)

用标准C语言实现Hanoi塔问题

(二)

1.设单链表中有仅三类字符的数据元素(大写字母、数字和其它字符),要求利用原单链表

中结点空间设计出三个单链表的算法,使每个单链表只包含同类字符。

2. 设计在链式存储结构上交换二叉树中所有结点左右子树的算法。

二、解答题(20分)

(一)

已知一棵二叉树的先序序列是ABCDEFGHIJK,中序序列是CDBGFEAHJIK,请构造出该二叉树。

三、画图题(20分)

(一)

设有序顺序表中的元素依次为017, 094, 154, 170, 275,503, 509, 512, 553, 612, 677, 765, 897, 908。试画出对其进行折半搜索时的判定树, 并计算搜索成功的平均搜索长度和搜索不成功的平均搜索长度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值