常州工学院数据结构作业 第7章 树和二叉树

1. 一棵完全二叉树上有1001个结点,叶子结点的个数是? 

满二叉树应是1024-1=1023个节点,这里是1001个节点,完全二叉树比满二叉树少在最后一行,少了1023-1001=22个节点,满二叉树最后一行是512个节点;减去22个缺少节点,最后一行有512-22=490个节点,而最后少去的22个节点的父节点也是叶子结点,父节点是缺少部分叶子结点的1/2,共计22/2=11个,

综上所述,叶子结点共490+11=501个。

2. 由3个结点可以构造出多少种不同的二叉树?请画出这几种二叉树。

可以构造出5种不同的二叉树

3. 一个具有1025个结点的二叉树的高h为多少?

一棵二叉树每层只有1个结点,则具有1025个结点的二叉树的最大高度为1025。一个具有1025个结点的完全二叉树的高度为11。这一个具有1025个结点的二叉树的高h为11至1025之间。

4. 深度为5的二叉树至多有多少个结点?

2^5 - 1 = 31个结点

  1. 引入二叉线索树的目的是什么?

加快查找结点的前驱或后继的速度;

引入线索二叉树的目的是:在遍历时找一个节点的前驱后继的时候,比非二叉线索树方便快捷,提高了遍历过程的效率。

//当用二叉链表作为二叉树的存储结构时,因为每个结点中只有指向其左、右儿子结点的指针,所以从任一结点出发只能直接找到该结点的左、右儿子。在一般情况下靠它无法直接找到该结点在某种遍历序下的前驱和后继结点。

6.有n个叶子的哈夫曼树的结点总数是多少?度为1的结点有多少?度为2的结点有多少?

哈夫曼树所有的分支节点均为双分支节点,根据二叉树的性质,双分支节点等于叶子节点的个数减1,因此总节点数为n+n-1=2n-1;

哈夫曼树中不存在度为1的结点;

度为2的结点n-1。

7.假设x为二叉树上某个结点,则二叉树的中序遍历序列中,x的前面一个结点是哪个结点?

当前节点如果有左子树,则:x的前一个结点为左子树的最右节点;

当前节点如果无左子树,则:不断地找父节点,直到x是其中一个父节点的右节点,则该父节点就是x的前一个结点。

8.假设一棵树的转化为二叉树,则树的先根遍历和后根遍历序列,相当于转化后的二叉树的哪个遍历序列?

树的先根遍历相当于转化后的二叉树的遍历

树的后根遍历相当于转化后的二叉树的中序遍历

9.有一棵树如图6.2所示,回答下面的问题:

 

⑴ 这棵树的根结点是__k1__;

⑵ 这棵树的叶子结点是_k2 k4 k5 k7_;

⑶ 结点k3的度是__2__;

⑷ 这棵树的度是__3__;

⑸ 这棵树的深度是__4__;

⑹ 结点k3的子女是__k5 k6__;

⑺ 结点k3的父结点是_k1___;

10.一个完全二叉树高度为5,最少多少个结点?最多多少个结点?

最少为5个结点;最多有31个结点

7.2  应用题(不用抄题目)

1. 假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。请画出该树。

2. 由如图6.4所示的二叉树,回答以下问题:

(1)画出该二叉树的中序线索二叉树;

(2)画出该二叉树的后序线索二叉树;

(3)画出该二叉树对应的森林。

 

3. 已知一棵树如图6.5所示,请转化为一棵二叉树。

4. 假设用于通讯的电文仅有八个字母(a,b,c,d,e,f,g,h)组成,字母在电文中出现的频率分别为0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10。试为这八个字母设计哈夫曼编码。(画出哈夫曼树,写出哈夫曼编码,求出WPL值)。使用十进制0-7的三位等长二进制表示形式(从000到111)是另一种编码方案。对于上述实例,比较两种方案的优缺点。

 

 5. 如下图所示的树,求出先根,后根遍历序列,并将树转化成二叉树。

 

 6.画出和下列二叉树相应的森林。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值