数据结构形考作业答案_第1页
数据结构形考作业答案_第2页
数据结构形考作业答案_第3页
数据结构形考作业答案_第4页
数据结构形考作业答案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./数据结构〔本形考作业1参考答案:一、单项选择题1.C2.D3.C4.C5.D6.C7.C8.C9.A10.B二、填空题1.n-i+1

2.n-i

3.集合、线性表、树、图

4.存储结构、物理结构

5.线性表图6.有穷性、确定性、可行性、有输入、有输出7.图

8.树

9.线性表

10.n-1

O<n>11.s->next=p->next;

12.head

13.q->next=p->next;14.p->next=head;

15.单链表

16.顺序存储链式存储

17.存储结构

18.两个后继结点前驱结点尾结点

头结点19.指向头结点的指针

指向第一个结点的指针

20.链式链表三、问答题1.简述数据的逻辑结构和存储结构的区别与联系,它们如何影响算法的设计与实现?答:若用结点表示某个数据元素,则结点与结点之间的逻辑关系就称为数据的逻辑结构。数据在计算机中的存储表示称为数据的存储结构。可见,数据的逻辑结构是反映数据之间的固有关系,而数据的存储结构是数据在计算机中的存储表示。尽管因采用的存储结构不同,逻辑上相邻的结点,其物理地址未必相同,但可通过结点的部信息,找到其相邻的结点,从而保留了逻辑结构的特点。采用的存储结构不同,对数据的操作在灵活性,算法复杂度等方面差别较大。2.解释顺序存储结构和链式存储结构的特点,并比较顺序存储结构和链式存储结构的优缺点。答:顺序结构存储时,相邻数据元素的存放地址也相邻,即逻辑结构和存储结构是统一的,,要求存中存储单元的地址必须是连续的。优点:一般情况下,存储密度大,存储空间利用率高。缺点:〔1在做插入和删除操作时,需移动大量元素;〔2由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;〔3表的容量难以扩充。链式结构存储时,相邻数据元素可随意存放,所占空间分为两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。优点:插入和删除元素时很方便,使用灵活。缺点:存储密度小,存储空间利用率低。3.什么情况下用顺序表比链表好?答:顺序表适于做查找这样的静态操作,链表适于做插入和删除这样的动态操作。如果线性表的变化长度变化不大,且其主要操作是查找,则采用顺序表;如果线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。4.解释头结点、第一个结点〔或称首元结点、头指针这三个概念的区别?答:头结点是在链表的开始结点之前附加的一个结点;第一个结点〔或称首元结点是链表中存储第一个数据元素的结点;头指针是指向链表中第一个结点〔或为头结点或为首元结点的指针。5.解释带头结点的单链表和不带头结点的单链表的区别。答:带头结点的单链表和不带头结点的单链表的区别主要体现在其结构上和算法操作上。在结构上,带头结点的单链表,不管链表是否为空,均含有一个头结点,不带头结点的单链表不含头结点;在操作上,带头结点的单链表的初始化为申请一个头结点。无论插入或删除的位置是地第一个结点还是其他结点,算法步骤都相同。不带头结点的单链表,其算法步骤要分别考虑插入或删除的位置是第一个结点还是其他结点。因为两种情况的算法步骤不同。四、程序填空:1.<1>p->data=i;<2>p->next=NULL;

<3>q->next=p;

<4>q=p;2.<1>head=p;

<2>q=p;<3>p->next=NULL;<4>p->next=q->next

<5>q->next=p;3.<1>p=<NODE*>malloc<sizeof<NODE>>;

<2>p->data=x;五、完成:实验1――线性表根据实验要求〔见教材P201-202认真完成本实验,并提交实验报告。数据结构〔本形考作业3参考答案:一、单项选择题

1.B

2.B

3.D

4.C

5.B

6.A

7.A

8.B

9.A

10.D11.

A

12.C

13.D

14.B

15.B

16.B

17.无

18.A

19.C

20.B21.A

22.B

23.

B

24.

B

25.C

26.

A

27.A

28.C

二、填空题

1.出度和入度之和

2.树中结点的度的最大值

3.分支结点

非终端结点

4.叶子结点

终端结点5.逻辑后继

直接后继结点

孩子结点

6.祖先结点

7.从根结点开始到叶结点的最大路径长度

8.Log2n+1」〔上取整9.根结点左子树右子树10.左子树

根结点右子树

11.左子树右子树

根结点12.权

13.带权路径长度之和14.最优二叉树

值最小的二叉树15.69

16.2m-117.多对多

m:m18.每个结点

1次

19.先根

20.后根

21.n*n

22.邻接矩阵

邻接表

23.n-1

24.n-1

25.栈三、综合题1.写出如下图所示的二叉树的先序、中序和后序遍历序列。答:二叉树的定义是递归的,所以,一棵二叉树可看作由根结点,左子树和右子树这三个基本部分组成,即依次遍历整个二叉树,又左子树或者右子树又可看作一棵二叉树并继续分为根结点、左子树和右子树三个部分…..,这样划分一直进行到树叶结点。<1>先序为"根左右",先序序列为:fdbacegihl<2>中序为"左根右",中序序列为:abcdefghij<3>后序为"左右根",后序序列为:acbedhjigf2.已知某二叉树的先序遍历结果是:A,B,D,G,C,E,H,L,I,K,M,F和J,它的中序遍历结果是:G,D,B,A,L,H,E,K,I,M,C,F和J,请画出这棵二叉树,并写出该该二叉树后续遍历的结果。〔1二叉树图形表示如下:〔2该二叉树后序遍历的结果是:G、D、B、L、H、K、M、I、E、J、F、C和A。3.答⑴已知深度为k的二叉树最多有2k-1个结点<K≥1>,29-1<892<210-1,故树的高度为10⑵对于完全二叉树来说,度为1的结点只能是0或1因为n=n0+n1+n2和n0=n2+1得:设n1=0,892=n0+0+n2=2n2+1得n2不为整数出错设n1=1,892=n0+1+n2=2n2+2得n2=445→n0=n2+1=446叶子结点数为446。⑶由⑵得单支结点数为1⑷对于n个结点的完全二叉树,最后一个树叶结点,即序号为n的叶结点其双亲结点

即为最后一个非终端结点,序号为892/2=446。4.〔1先序序列和中序序列相同的二叉树为空树或任一结点均无左孩子的非空二叉树〔2中序和后序序列相同的二叉树为空树或任一结点均无右孩子的非空二叉树〔3先序和后序序列相同的二叉树为空树或仅有一个结点5.〔1哈夫曼树如图B-4所示。〔2其带权路径长度WPL值为270。〔3每个字符的哈夫曼编码为:A:100,B:11,C:1010,D:000,E:0010,F:10110,G:10111,H:0011,I:016.答〔1深度优先遍历:v1,v2,v3,v8,v5,v7,v4,v6

广度优先遍历:v1,v2,v4,v6,v3,v5,v7,v8<2>G的拓扑序列为:v1,v2,v4,v6,v5,v5,v3,v5,v7,v8<3>最短路径为:v1,v2,v5,v7,v87.①g1的图示和图g1的邻接表如下图所示。②图G的邻接矩阵如下图所示:③V1、V2、V3、V4、V5的度分别为:2,3,2,3,2四、程序分析题1.<1>returnc1+1

<2>NodeLevel<BT->right,X>

<3><c2>=1>returnc2+12.<1>for<j=0;j<n;j++>

<2>

dfstree<GA,j,n>;五、算法设计题1.写一个将一棵二叉树复制给另一棵二叉树的算法。defineNULL0typedefstructbtnode{

elemtypedata;structbtnode*lchild,*rchild;

}bitnode,*bitree;if<p!=NULL>

{

t=<bitnode*>malloc<sizeof<bitnode>>;t->data=p->data;t->lchild=CopyTree<p->lchild>;t->rchild=CopyTree<p->rchild>;return<t>;}else

return<NULL>;}2.intBTreeLeafCount<structBTreeNode*BT>{

if<BT==NULL>return0;elseif<BT->left==NULL&&BT->right==NULL>return1;elsereturnBTreeLeafCount<BT->left>+BTreeLeafCount<BT->right>;}六、完成:实验3――栈、队列、递归程序设计,实验4——图的存储方式和应用根据实验要求〔见教材P203认真完成本实验,并提交实验报告。数据结构〔本形考作业4参考答案<2009-03-3120:19:06>标签:

教育分类:

作业辅导作业4部分答案一、单项选择题

1.D

2.C

3.C

4.C

5.D

6.A

7.C

8.D

9.B

10.D

11.A

12.C

13.A

14.C

15.D

16.B

17.B

18.D

19.D

20.D21.D

22.D

23.A

24.A

25.C

26.D

27.B

28.A

29.B

30.C二、填空题

1.散列

2.特征项

数据元素

3.主键

4.平均值

5.顺序

6.二分查找升序有序7.顺序存储

8.索引查找

顺序查找

9.小于根结点的值

大于〔或大于等于根结点的值10.自变量

地址值

11.9,14,16,17

12.部排序

外部排序

13.交换排序

14.3

15.4

8

16.堆排序

快速排序

17.主关键字

18.关键字相等的记录

19.n-1,n-j

20.堆尾

堆顶

向下三、综合题1.已知序列〔70,83,100,65,10,32,7,9,请写出对此序列采用插入排序法进行升序排序时各趟的结果。答:原始序列:〔70,83,100,65,10,32,7,9第1趟:〔70,83,100,65,10,32,7,9第2趟:〔70,83,100,65,10,32,7,9第3趟:〔65,70,83,100,10,32,7,9第4趟:〔10,65,70,83,100,32,7,9第5趟:〔10,32,65,70,83,100,7,9第6趟:〔7,10,32,65,70,83,100,9第7趟:〔7,9,10,32,65,70,83,1002.已知序列〔10,18,4,3,6,12,1,9,15,8,请写出对此序列采用归并排序法进行升序排序时各趟的结果。答:原始序列:10,18,4,3,6,12,1,9,15,8第1趟:

[10,18][3,4][6,12][1,9][8,15]第2趟:

[3,4,10,18,][1,6,9,12][8,15]第3趟:

[3,4,10,18,][1,6,8,9,12,15]第4趟:

[1,3,4,6,8,9,10,12,15,18]3.已知序列〔256,301,751,129,937,863,742,694,076,438请给出采用冒泡排序法对该序列作升序排列时的每一趟结果。答:原始序列:256,301,751,129,937,863,742,694,076,438第1趟:

256,301,129,751,863,742,694,076,438,937第2趟:

256,129,301,751,742,694,076,438,863,937第3趟:

129,256,301,742,694,076,438,751,863,937第4趟:

129,256,301,694,076,438,742,751,863,937第5趟:

129,256,301,076,438,694,742,751,863,937第6趟:

129,256,076,301,438,694,742,751,863,937第7趟:

129,076,256,301,438,694,742,751,863,937第8趟:

076,129,256,301,438,694,742,751,863,937第9趟:

076,129,256,301,438,694,742,751,863,9374.已知序列〔503,87,512,61,908,170,897,275,653,462请给出采用快速排序法对该序列作升序排列时的每一趟结果。原始序列:503,87,512,61,908,170,897,275,653,462第1趟:

[462,87,275,61,170]503[897,908,653,512]第2趟:

[170,87,275,61]462,503[897,908,653,512]第3趟:

[87,61]170[275]462,503[897,908,653,512]第4趟:

61[87]170[275]462,503[897,908,653,512]第5趟:

61,87,170,[275]462,503[897,908,653,512]第6趟:

61,87,170,275,462,503[897,908,653,512]第7趟:

61,87,170,275,462,503[512,653]897[908]第8趟:

61,87,170,275,462,503,512,[653]897[908]第9趟:

61,87,170,275,462,503,653,897[908]第10趟:61,87,170,275,462,503,653,897,9085.设一组记录的关键字序列为〔49,83,59,41,43,47,采用堆排序算法完成以下操作:〔要求小根堆,并画出中间过程〔1以二叉树描述6个元素的初始堆〔2以二叉树描述逐次取走堆顶元素后,经调整得到的5个元素、4个元素的堆答:〔1〔26.<1>原序列16

15

20

53

64

715

16

20

53

7

64

n-1趟15

16

20

7

53

64

n-j次15

16

7

20

53

6415

7

16

20

53

647

15

16

20

53

64〔2

〔3平均查找长度=〔1*1+2*2+3*3/6=14/6

7.

〔1

<2>

中序遍历:2,3,4,5,6,7,14,16,18

四、程序填空题1.〔1①j>=0〔2②a[j]〔3③j--〔4④temp

2.〔1j<=n-1〔2i<=n-j〔3a[i]=a[i+1]〔4a[i+1]=temp〔5…当某趟冒泡中没有出现交换则已排好序结束循环。

五、算法设计题1.编写折半查找算法。折半查找算法如下;intBin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论