一棵二叉树的中根线索二叉树_树与二叉树

本文探讨了二叉树的相关算法,包括中根线索二叉树的构建,如何找到二叉树中特定元素的左孩子结点,以及树的高度计算。同时,通过一系列问题解答,涵盖了树的存储结构、度数计算、完全二叉树和满二叉树的性质,以及叶子结点数量的确定。此外,还讨论了哈夫曼树的构建、二叉树的转换、遍历和性质检查等重要概念。
摘要由CSDN通过智能技术生成

1. 有一颗树的括号表示为A(B, C(E, F(G)), D),回答下面的问题:

  • 指出树的根结点?
  • 指出棵树的所有叶子结点?
  • 结点C的度是多少?
  • 这棵树的度为多少?
  • 这棵树的高度是多少?
  • 结点C的孩子结点是哪?
  • 结点C的双亲结点是谁?
答案:
这棵树的根结点为A
这棵树的叶子结点为B丶E丶G丶D // 叶子结点:一棵树当中没有子结点(即度为0)的结点称为叶子结点,简称“叶子”。叶子是指出度为0的结点,又称为终端结点。
结点C的度为2 // 结点度:结点拥有子结点的数量
这棵树的度是3 // 二叉树的度:是指树中各结点度的最大值
这棵树的高度为4 // 深度是从根节点到它的叶节点,高度是从叶节点数到它的根节点
节点C的孩子结点是E丶F
结点C的双亲结点是A 

2. 若一棵度为4的树中度为2丶3丶4的结点个数分别为3丶2丶2,则该树的叶子结点的个数是多少?

答案:
在树中,结点有几个分叉,度就是几。
树中结点数 = 总分叉树 + 1。(这里的分叉树就是所有结点的度之和)

那么设叶子数为X,则此树的总分叉树为 2 * 3 + 3 * 2 + 4 * 2 = 20;树中结点数 = 总分叉树 + 1 = 20 + 1 = 21; 3 + 2 + 2 + X = 21,解得X = 14,即该树的叶子结点的个数为14。

3. 为了实现以下各种功能,其中X结点表示该结点的位置,给出树的最适合的存储结构:

  • 求X和Y结点的最近祖先结点
  • 求X结点的所有子孙
  • 求根结点到X结点的路径
  • 求X结点的所有右边结点的路径
  • 判断X结点是否是叶子结点
  • 求X结点的所有孩子
答案:
双亲存储结构
孩子链存储结构
孩子兄弟存储结构
孩子存储结构
孩子链存储结构
孩子链存储结构  

4. 设二叉树BT的一种存储结构如表7.1所示。其中,BT为树根结点指针,Lichild丶rchild分别为结点的左丶右孩子指针域,在这里使用结点编号作为指针域值,0表示指针域值为空;data为结点的数据域。请完成下列问题:

  • 画出二叉树BT的树形表示
  • 写出按先序丶中序和后续遍历二叉树BT所得到的结点序列
  • 画出二叉树BT的后续线索树(不带头结点)
答案:
  • BT的逻辑结构054ab6d76ec6ead1cff6ac1d54806e1a.png
  • 先序序列(根左右): abcedfhgij
    中序序列(左根右): acbhfdjiga   
    后序序列(左右根): echfjigdba
  • 先画出遍历序列,后根据遍历序列例如ABC,看A的右子树是否为空,如果为空,则指向B,再看B,如果B的左子树为空,则指向A,以此类推,均符合这个规律。

5885163a268e99f0fdea8079a7452691.png

5. 含有60个叶子结点的二叉树的最小高度是多少?

答案

叶子结点:一棵树中当中没有子结点(即度为0)的结点,称为叶子结点。叶子结点是指度为0的结点,又称为终端结点。

深度为h的二叉树最多有2^h - 1个节点

n0: 指度(分叉)为0的结点 n1:指度(分叉)为1的结点 n2:指度(分叉)为2的结点

二叉树中的叶子节点个数等于度为2的节点个数+1:  n0 = n2 + 1 证明链接

答案:
在该二叉树中,n0 = 60,

n = n0 + n1 + n2 = n0 + n1 + (n0 -1) = 60 + n1 + (60 - 1) = 119 + n1;

当n1= 0且为完全二叉树时高度最小,

此时高度h = [log2^(n + 1)] = log(2)^120 = 7。所以含有60个叶子结点的二叉树最小高度是7

6. 已知一棵完全二叉树的第6层(设根结点为第1层)有8个叶子结点,则该完全二叉树的结点个数最多是多少?最少是多少?

满二叉树和完全二叉树的区别:满二叉树:每层都达到最大数,称为满二叉树。完全二叉树:设二叉树的高度为h层,其他各层(1~h-1)的结点数都达到最大个数,第h层从右向左连续缺若干个结点。

满二叉树也是完全二叉树。

答案:
完全二叉树的叶子结点只能在最下面两层,所以结点最多的情况是第6层为倒数第2层&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值