树结构习题及答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章树

【例5-1】写出如图5-1所示的树的叶子结点、非终端结点、每个结点的度及树深度。

A

B C D E

F G H I J

图5-1

解:

(1)叶子结点有:B、D、F、G、H、I、J。

(2)非终端结点有:A、C、E。

(3)每个结点的度分别就是:A的度为4,C的度为2,E的度为3,其余结点的度为0。

(4)树的深度为3。

【例5-2】一棵度为2的树与一棵二叉树有什么区别?

解:度为2的树有两个分支,但分支没有左右之分;一棵二叉树也有两个分支,但有左右之分,左右子树的次序不能交换。

【例5-3】树与二叉树有什么区别?

解:区别有两点:

(1)二叉树的一个结点至多有两个子树,树则不然;

(2)二叉树的一个结点的子树有左右之分,而树的子树没有次序。

【例5-4】分别画出具有3个结点的树与三个结点的二叉树的所有不同形态。

解:如图5-2(a)所示,具有3个结点的树有两种不同形态。

图5-2(a)

如图5-2(B)所示,具有3个结点的二叉树有以下五种不同形态。

图5-2(b)

【例5-5】如图5-3所示的二叉树,试分别写出它的顺序表示与链接表示(二叉链表)。

解:

(1)顺序表示。

(2)该二叉树的二叉链表表示如图5-4所示。

【例5-6】试找出满足下列条件的所有二叉树:

(1)先序序列与中序序列相同; (2)中序序列与后序序列相同; (3)先序序列与后序序列相同。 解:

(1)先序序列与中序序列相同的二叉树为:空树或者任一结点均无左孩子的非空二叉树; (2)中序序列与后序序列相同的二叉树为:空树或者任一结点均无右孩子的非空二叉树; (3)先序序列与后序序列相同的二叉树为:空树或仅有一个结点的二叉树。

【例5-7】如图5-5所示的二叉树,要求:

(1)写出按先序、中序、后序遍历得到的结点序列。

(2)画出该二叉树的后序线索二叉树。 解: (1) 先序遍历序列:ABDEFC 中序遍历序列:DEFBAC 后序遍历序列:FEDBCA (2)其后序线索二叉树如图5-6所示。

b

a

c d

e f

图5-5

图5-4

【例5-8】将图5-7所示的树转换为二叉树。

解:第一步,加线。第二步,抹线。第三步,旋转。过程如图5-8所示。

【例5-9】将如图5-9所示的二叉树转换为树。

A 图5-7

B

C

D

E

F

G

H

I K L M

J A B C

D

E

F

H I

J 图5-9

A

图5-8(a) 第一步 加线

B C D E F G H I K L M

J A 图5-8(b) 第二步 抹线 B C D

E F G H I

K L M

J

A B

图5-8(c) 第三步 旋转

C F D

K G E

L H M

I J

解: 第一步,加线。第二步,抹线。第三步,调整。过程如图5-10所示。

【例5-10】将如图5-11所示的森林转换成二叉树。

解: 步骤略,结果如图5-12所示。

【例5-11】假定用于通信的电文由8个字符A 、B 、C 、D 、E 、F 、G 、H 组成,各字母在电文中出现的概率为5%、25%、4%、7%、9%、12%、30%、8%,试为这8个字母设计哈夫曼编码。

解: 根据题意,设这8个字母对应的权值分别为(5,25,4,7,9,12,30,8),并且n=8。 (1)设计哈夫曼树的步骤如图5-13所示。

C D

E F G A

B

H I

L

J K

图5-12 第一步: 25 5 4 7 9 12 30 8 图5-11 C D E

F G A B H

I L J K A

B D H

C F E J I B A C

D

E

F H I J 第一步 第二步 第三步

B

A C D E F H I J 图5-10

(2)设计哈夫曼编码

利用第八步得到的哈夫曼树,规定左分支用0表示,右分支用1表示,字母A 、B 、C 、D 、E 、F 、G 、H 的哈夫曼编码如下表示:

A:0011 B:01 C:0010 D:1010 E:000 F:100 G:11 H:1011

习题5

一、单项选择题

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

A 、 4

B 、 5

C 、 6

D 、 7

2、 假设在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为(2、

第二步: 25 7 9 12 30 5

4 9 8 第三步: 2

5 7 9 12 30 5

4 9 8 1

5 第七步: 25 30 9 5 4 9

18 7 12 8 15 27 43 57

第八步:

25 9 5 4 9 18 43 30 7 12 8 15 27

57 100 图5-13

相关文档
最新文档