常州工学院数据结构作业 第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.画出和下列二叉树相应的森林。

 

 

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 一棵二叉树的顺序存储情况如下: 中,度为2的结点数为( )。 A.1 B.2 C.3 D.4 2. 一棵“完全二叉树”结点数为25,度为( )。 A.4 B.5 C.6 D.不确定 3.下列说法中,( )是正确的。 A. 二叉树就是度为2的 B. 二叉树中不存在度大于2的结点 C. 二叉树是有序 D. 二叉树中每个结点的度均为2 4.一棵二叉树的前序遍历序列为ABCDEFG,它的中序遍历序列可能是( )。 A. CABDEFG B. BCDAEFG C. DACEFBG D. ADBCFEG 5.线索二叉树中的线索指的是( )。 A.左孩子 B.遍历 C.指针 D.标志 6. 建立线索二叉树的目的是( )。 A. 方便查找某结点的前驱或后继 B. 方便二叉树的插入与删除 C. 方便查找某结点的双亲 D. 使二叉树的遍历结果唯一 7. 有abc三个结点的右单枝二叉树的顺序存储结构应该用( )示意。 A. a b c B. a b ^ c C. a b ^ ^ c D. a ^ b ^ ^ ^ c 8. 一颗有2046个结点的完全二叉树的第10层上共有( )个结点。 A. 511 B. 512 C. 1023 D. 1024 9. 一棵完全二叉树一定是一棵( )。 A. 平衡二叉树 B. 二叉排序 C. 堆 D. 哈夫曼 10.某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是( )的二叉树。 A.空或只有一个结点 B.度等于其结点数 C.任一结点无左孩子 D.任一结点无右孩子 11.一棵二叉树的顺序存储情况如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A B C D E 0 F 0 0 G H 0 0 0 X 结点D的左孩子结点为( )。 A.E B.C C.F D.没有 12.一棵“完全二叉树”结点数为25,度为( )。 A.4 B.5 C.6 D.不确定 二、填空题(每空3分,共18分)。 1. 的路径长度:是从根到每个结点的路径长度之和。对结点数相同的来说,路径长度最短的是 完全 二叉树。 2. 在有n个叶子结点的哈夫曼中,总结点数是 2n-1 。 3. 在有n个结点的二叉链表中,值为非空的链域的个数为 n-1 。 4. 某二叉树的中序遍历序列和后序遍历序列正好相反,则该二叉树一定是 任一结点无左孩子 的二叉树。 5. 深度为 k 的二叉树最多有 个结点,最少有 k 个结点。 三、综合题(共58分)。 1. 假定字符集{a,b,c,d,e,f }中的字符在电码中出现的次数如下: 字符 a b c d e f 频度 9 12 20 23 15 5 构造一棵哈夫曼(6分),给出每个字符的哈夫曼编码(4分),并计算哈夫曼的加权路径长度WPL(2分)。 (符合WPL最小的均为哈夫曼,答案不唯一) 哈夫曼编码: 2. 假设用于通信的电文由字符集{a,b,c,d,e,f,g}中的字符构成,它们在电文中出现的频率分别为{0.31,0.16,0.10,0.08,0.11,0.20,0.04}。要求: (1)为这7个字符设计哈夫曼(6分)。 (2)据此哈夫曼设计哈夫曼编码(4分)。 (3)假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制数等长编码使电文总长压缩多少?(4分) (1) 为这7个字符设计哈夫曼为(符合WPL最小的均为哈夫曼,答案不唯一): (2) 哈夫曼编码为: a:01;b:001;c:100;d:0001;e:101;f:11;g:0000 (3) 假设电文的长度为100字符,使用哈夫曼编码比使用3位二进制数等长编码使电文总长压缩多少? 采用等长码,100个字符需要300位二进制数,采用哈夫曼编码发送这100个字符需要261二进制位,压缩了300-261=39个字符。压缩比为39/300=13%。 3. 二叉数T的(双亲到孩子的)边集为: { <A,B>, <A,C>, <D,A>, <D,E>, <E,F>, <F,G> } 请回答下列问题: (1)T的根结点(2分): (2)T的叶结点(2分): (3)T的深度(2分): (4)如果上述列出边集中,某个结点只有一个孩子时,均为其左孩子;某个结点有两个孩子时,则先列出了连接左孩子的边后列出了连接右孩子的边。画出该二叉树其及前序线索(6分)。 (1)T的根结点 (2)T的叶结点 : (3)T的深度 : (4)该二叉树其及前序线索为: 4.现有以下按前序和中序遍历二叉树的结果: 前序:ABCEDFGHI 中序:CEBGFHDAI 画出该二叉树的逻辑结构图(5分),并在图中加入中序线索(5分)。 5.有电文:ABCDBCDCBDDBACBCCFCDBBBEBB。 用Huffman构造电文中每一字符的最优通讯编码。画出构造的哈夫曼,并给出每个字符的哈夫曼编码方案。(符合WPL最小的均为哈夫曼,答案不唯一) (1)构造哈夫曼(6分): (2)哈夫曼编码方案(4分):

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值