数据结构本形成性考核作业及讲评3.docx

上传人:b****7 文档编号:25157563 上传时间:2023-06-05 格式:DOCX 页数:17 大小:57.69KB
下载 相关 举报
数据结构本形成性考核作业及讲评3.docx_第1页
第1页 / 共17页
数据结构本形成性考核作业及讲评3.docx_第2页
第2页 / 共17页
数据结构本形成性考核作业及讲评3.docx_第3页
第3页 / 共17页
数据结构本形成性考核作业及讲评3.docx_第4页
第4页 / 共17页
数据结构本形成性考核作业及讲评3.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据结构本形成性考核作业及讲评3.docx

《数据结构本形成性考核作业及讲评3.docx》由会员分享,可在线阅读,更多相关《数据结构本形成性考核作业及讲评3.docx(17页珍藏版)》请在冰豆网上搜索。

数据结构本形成性考核作业及讲评3.docx

数据结构本形成性考核作业及讲评3

数据结构(本)课程作业

作业3

(本部分作业覆盖教材第6-7章的内容)

一、单项选择题

1.假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为()。

A.15B.16C.17D.47

2.二叉树第k层上最多有()个结点。

A.2kB.2k-1

C.2k-1D.2k-1

3.二叉树的深度为k,则二叉树最多有()个结点。

A.2kB.2k-1

C.2k-1D.2k-1

4.设某一二叉树先序遍历为abdec,中序遍历为dbeac,则该二叉树后序遍历的顺序是()。

A.abdecB.debacC.debcaD.abedc

5.树最适合于用来表示()。

A.线性结构的数据

B.顺序结构的数据

C.元素之间无前驱和后继关系的数据

D.元素之间有包含和层次关系的数据

6.设a,b为一棵二叉树的两个结点,在后续遍历中,a在b前的条件是()。

A.a在b上方B.a在b下方

C.a在b左方D.a在b右方

7.权值为{1,2,6,8}的四个结点构成的哈夫曼树的带权路径长度是()。

A.18B.28C.19D.29

8.将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为()。

A.33B.34C.35D.36

9.如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为()。

A.哈夫曼树B.平衡二叉树

C.二叉树D.完全二叉树

10.下列有关二叉树的说法正确的是()。

A.二叉树中度为0的结点的个数等于度为2的结点的个数加1

B.二叉树中结点个数必大于0

C.完全二叉树中,任何一个结点的度,或者为0或者为2

D.二叉树的度是2

11.在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为()。

A.4B.5C.6D.7

12.在一棵度具有5层的满二叉树中结点总数为()。

A.31B.32C.33D.16

13.利用n个值作为叶结点的权生成的哈夫曼树中共包含有()个结点。

A.nB.n+1C.2*nD.2*n-1

14.利用n个值作为叶结点的权生成的哈夫曼树中共包含有()个双支结点。

A.nB.n-1C.n+1D.2*n-1

15.利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子的最长带权路径长度为()。

A.18B.16C.12D.30

16.在一棵树中,()没有前驱结点。

A.分支结点B.叶结点C.树根结点D.空结点

17.在一棵二叉树中,若编号为i的结点存在右孩子,则右孩子的顺序编号为()。

A.2iB.2i-1D.2i+1C.2i+2

18.设一棵哈夫曼树共有n个叶结点,则该树有()个非叶结点。

A.nB.n-1C.n+1D.2n

19.设一棵有n个叶结点的二叉树,除叶结点外每个结点度数都为2,则该树共有()个结点。

A.2nB.2n-1C.2n+1D.2n+2

20.一棵完全二叉树共有5层,且第5层上有六个结点,该树共有()个结点。

A.20B.21C.23D.30

21.在一个图G中,所有顶点的度数之和等于所有边数之和的()倍。

A.1/2B.1C.2D.4

22.在一个有像图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。

A.邻接矩阵表示法B.邻接表表示法

C.逆邻接表表示法D.邻接表和逆邻接表

23.在图的存储结构表示中,表示形式唯一的是()。

A.nB.n1C.n1D.n/2

24.一个具有n个顶点的无向完全图包含()条边。

A.n(n1)B.n(n1)C.n(n1)/2D.n(n1)/2

25.一个具有n个顶点的有向完全图包含()条边。

A.n(n1)B.n(n1)C.n(n1)/2D.n(n1)/2

26.对于具有n个顶点的图,若采用邻接矩阵表示,则该矩阵的大小为()。

A.nB.n2C.n1D.(n1)2

27.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为()。

A.nB.eC.2nD.2e

28.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则所有顶点邻接表中的结点总数为()。

A.nB.eC.2nD.2e

29.在有向图的邻接表中,每个顶点邻接表链接着该顶点所有()邻接点。

A.入边B.出边

C.入边和出边D.不是入边也不是出边

30.在有向图的逆邻接表中,每个顶点邻接表链接着该顶点所有()邻接点。

A.入边B.出边

C.入边和出边D.不是入边也不是出边

31.邻接表是图的一种()。

A.顺序存储结构B.链式存储结构

C.索引存储结构D.散列存储结构

32.如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是()。

A.完全图B.连通图C.有回路D.一棵树

33.下列有关图遍历的说法不正确的是()。

A.连通图的深度优先搜索是一个递归过程

B.图的广度优先搜索中邻接点的寻找具有“先进先出”的特征

C.非连通图不能用深度优先搜索法

D.图的遍历要求每一顶点仅被访问一次

34.无向图的邻接矩阵是一个()。

A.对称矩阵B.零矩阵C.上三角矩阵D.对角矩阵

35.图的深度优先遍历算法类似于二叉树的()遍历。

A.先序B.中序C.后序D.层次

36.已知下图所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。

A.V1V2V4V8V3V5V6V7B.V1V2V4V5V8V3V6V7

C.V1V2V4V8V5V3V6V7D.V1V3V6V7V2V4V5V8

   

 

二、填空题

1.结点的度是指结点所拥有的。

2.树的度是指。

3.度大于0的结点称作或。

4.度等于0的结点称作或。

5.在一棵树中,每个结点的或者说每个结点的称为该结点的,简称为孩子。

6.一个结点称为其后继结点的。

7.具有的结点互称为兄弟结点,简称为兄弟。

8.每个结点的所有子树中的结点被称为该结点的。

9.从根结点到该结点所经分支上的所有结点称为该结点的。

10.树的深度或高度是指。

11.m(m0)棵互不相交的树的集合称为。

12.度为k的树中的第i层上最多有结点。

13.深度为k的二叉树最多有结点。

14.在一棵二叉树中,如果树中的每一层都是满的,则称此树为;但如果出最后一层外,其余层都是满的,并且最后一层是满的,或者是在缺少若干连续个结点,则称此二叉树为。

15.具有n个结点的完全二叉树的深度是。

16.先序遍历二叉树的的操作定义为;若二叉树为空,则为空操作,否则进行如下操作,访问二叉树的;先序遍历二叉树的,先序遍历二叉树的

17.中序遍历二叉树的的操作定义为;若二叉树为空,则为空操作,否则进行如下操作,中序遍历二叉树的;访问而叉树的,中序遍历二叉树的

18.后序遍历二叉树的的操作定义为;若二叉树为空,则为空操作,否则进行如下操作,后序遍历二叉树的;后序遍历二叉树的,访问而叉树的

19.将树中结点赋上一个有着某种意义的实数,称此实数为该结点的。

20.树的带权路径长度为树中所有叶子结点的。

21.哈夫曼树又称为,它是n个带权叶子结点构成的所有二叉树中带权路径长度WPL。

22.若以4,5,6,7,8作为叶子结点的权值构造哈夫曼树,则其带权路径长度是。

23.具有m个叶子结点的哈夫曼树共有结点。

24.在图中,任何两个数据元素之间都可能存在关系,因此图的数据元素之间是一种

的关系。

25.图的邻接矩阵表示法是用一个来表示图中顶点之间的相邻关系。

26.邻接表是图中的每个顶点建立一个邻接关系的。

27.图的遍历是从图的某一顶点出发,按照一定的搜索方法对图中各做

访问的过程。

28.图的深度优先搜索遍历类似于树的遍历。

29.图的广度优先搜索类似于树的遍历。

30.具有n个顶点的有向图的邻接矩阵,其元素个数为。

30.具有n个顶点的无向图至少有条边,才能确保其为一个连通图。

31.图常用的两种存储结构是和。

32.一个AOV网(顶点活动图)应该是一个。

即不应该带有回路,否则回路上的所有活动都。

33.用邻接矩阵存储有向图G,其第i行的所有元素之和等于顶点i的。

34.在有n个顶点的有向图中,每个顶点的度最大可达。

35.在一个带权图中,两顶点之间的最段路径最多经过条边。

36.为了实现图的深度优先搜索遍历,其非递归的算法中需要使用的一个辅助数据结构为。

三、综合题

1.写出如下图所示的二叉树的先序、中序和后序遍历序列。

 

2.已知某二叉树的先序遍历结果是:

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,请画出这棵二叉树,并写出该二叉树后续遍历的结果。

 

3.已知一棵完全二叉树共有892个结点,求

⑴树的高度

⑵叶子结点数

⑶单支结点数

⑷最后一个非终端结点的序号

 

4.给出满足下列条件的所有二叉树。

(1)先序和中序相同

(2)中序和后序相同

(3)先序和后序相同

 

5.假设通信用的报文由9个字母A、B、C、D、E、F、G、H和I组成,它们出现的频率分别是:

10、20、5、15、8、2、3、7和30。

请请用这9个字母出现的频率作为权值求:

(1)设计一棵哈夫曼树;

(2)计算其带权路径长度WPL;

(3)写出每个字符的哈夫曼编码。

 

6.请根据以下带权有向图G

(1)给出从结点v1出发分别按深度优先搜索遍历G和广度优先搜索遍历G所得的结点序列;

(2)给出G的一个拓扑序列;

(3)给出从结点v1到结点v8的最短路径。

 

7.已知无向图G描述如下:

G=(V,E)

V={V1,V2,V3,V4,V5}

E={(V1,V2),(V1,V4),(V2,V4),(V3,V4),(V2,V5),(V3,V4),(V3,V5)}

(1)画出G的图示;

(2)然后给出G的邻接矩阵和邻接表;

(3)写出每个顶点的度。

 

8.回答下列问题:

⑴对于存储结构采用邻接矩阵的无向图,如何判断下列有关问题?

①图中有多少条边?

②任意两顶点间是否有边相连?

③任意一个顶点的度是多少?

⑵对于存储结构采用邻接表的有向图,如何判断下列有关问题?

①图中有多少条边?

②图中是否存在从Vi到Vj的边?

③如何求顶点Vi的入度和出度?

 

四、程序填空题

1.下面函数的功能是返回二叉树BT中值为X的结点所在的层号,请在划有横线的地方填写合适内容。

intNodeLevel(structBinTreeNode*BT,charX)

{

if(BT==NULL)return0;/*空树的层号为0*/

elseif(BT->data==X)return1;/*根结点的层号为1*/

/*向子树中查找X结点*/

else{

intc1=NodeLevel(BT->left,X);

if(c1>=1)___

(1)___________;

intc2=______

(2)__________;

if___(3)__________________;

//若树中不存在X结点则返回0

elsereturn0;

}

}

2.下面函数的功能是按照图的深度优先搜索遍历的方法,输出得到该图的生成树中的各条边,请在划有横线的地方填写合适内容。

voiddfstree(adjmatrixGA,inti,intn)

{

intj;

visited[i]=1;

(1)

if(GA[i][j]!

=0&&GA[i][j]!

=MaxValue&&!

visited[j])

{

printf("(%d,%d)%d,",i,j,GA[i][j]);

(2)

}

}

五、算法设计题

1.写一个将一棵二叉树复制给另一棵二叉树的算法。

 

2.根据下面函数声明编写出求一棵二叉树中叶子结点总数的算法,该总数值由函数返回。

假定参数BT初始指向二叉树的根结点。

intBTreeLeafCount(structBTreeNode*BT);

 

3.已知有n个顶点的有向图邻接表,设计算法分别实现下列功能:

(1)求出图G中每个顶点的出度、入度。

(2)计算图中度为0的顶点数。

 

六、完成:

实验3――栈、队列、递归程序设计

实验4——图的存储方式和应用

根据实验要求(见教材P203)认真完成本实验,并提交实验报告。

 

作业3部分答案

一、单项选择题

1.B2.B3.D4.C5.B6.A7.A8.C9.A10.D

11.A12.C13.C14.B15.B16.C17.B18.C19.A20.B

21.D22.B23.B24.B25.C26.A27.A28.C

 

三、综合题

1.写出如下图所示的二叉树的先序、中序和后序遍历序列。

答:

二叉树的定义是递归的,所以,一棵二叉树可看作由根结点,左子树和右子树这三个基本部分组成,即依次遍历整个二叉树,又左子树或者右子树又可看作一棵二叉树并继续分为根结点、左子树和右子树三个部分…..,这样划分一直进行到树叶结点。

(1)先序为“根左右”,先序序列为:

fdbacegihl

(2)中序为“左根右”,中序序列为:

abcdefghij

(3)后序为“左右根”,后序序列为:

acbedhjigf

2.已知某二叉树的先序遍历结果是:

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所示。

图B-4

(2)其带权路径长度WPL值为270。

(3)每个字符的哈夫曼编码为:

A:

100,B:

11,C:

1010,D:

000,E:

0010,F:

10110,G:

10111,H:

0011,I:

01

6.答

(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,v8

7.

① g1的图示和图g1的邻接表如下图所示。

图G

② 图G的邻接矩阵如下图所示:

 

图G的邻接矩阵图G的邻接表

③ V1、V2、V3、V4、V5的度分别为:

2,3,2,3,2

四、程序分析题

1.

(1)returnc1+1

(2)NodeLevel(BT->right,X)

(3)(c2>=1)returnc2+1

2.

(1)for(j=0;j

(2)dfstree(GA,j,n);

五、算法设计题

1.写一个将一棵二叉树复制给另一棵二叉树的算法。

defineNULL0

typedefstructbtnode

{

elemtypedata;

structbtnode*lchild,*rchild;

}bitnode,*bitree;

bitree*CopyTree(bitnode*p)

{

/*复制一棵二叉树*/

bitnode*t;

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);

}/*CopyTree*/

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)认真完成本实验,并提交实验报告。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 环境科学食品科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1