【数据结构】二叉树

二叉树

二叉树的性质

性质1:在二叉树的第i层上至多有2i-1个结点。
性质2:深度为k的二叉树至多有2k-1个结点。
性质3: 对于任何一棵二叉树,若2度的结点数有n2个,则叶子数n0必定为
n2+1 (即n0=n2+1)。
性质4:具有n个结点的完全二叉树的深度必为 L log2n _l +1。
性质5:对完全二叉树,若从上至下、从左至右编号,则编号为i 的结点,其左孩子编号必为2i,右孩子编号必为2i+1;其双亲的编号必为 i/2  。(i=1 时为根,除外)。

满二叉树: 深度为k 且有2k -1个结点的二叉树。
特点:每层都“充满”了结点,即每一层i的结点数都具有最大值2i -1。
完全二叉树:深度为k 的,有n个结点的二叉树,当且仅当其每一个结点都与深度为k 的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树。

完全二叉树的特点(设树高为k):

  • 前k-1层结点均是“满的”
  • 第k层可能不满,且结点靠左集中
  • 叶子只可能出现在最后两层
  • 只有最后一个叶子的双亲可能度为1,且有左孩子无右孩子,其余非叶子结
    点度均为2。

满二叉树和完全二叉树的区别
满二叉树是结点一个也不少的树,而完全二叉树虽然前k-1层是满的,但最底层却允许在右边缺少连续若干个结点。满二叉树是完全二叉树的一个特例。

森林与二叉树的转换
方法:加线—删线—旋转在这里插入图片描述
在这里插入图片描述
二叉树如何还原为树
把所有右孩子变为兄弟
在这里插入图片描述
在这里插入图片描述
森林与二叉树的转换
森林如何转化为二叉树?
方法:
各树先各自转为二叉树;
再依次连到前一个二叉树的右子树上。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二叉树如何还原为森林?
方法:
把最右边的子树变为森林,
其余右子树变为兄弟。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
哈夫曼树
哈夫曼树的特点:
哈夫曼树中没有度为1的结点;
若给定n个权值(n个叶子结点),则哈夫曼树的总结点数为 2n-1;
哈夫曼树的高度不超过n。

哈夫曼编码的特点
哈夫曼编码是不等长编码;
哈夫曼编码是前缀编码,即任一字符的编码都不是另一字符编码的前缀;
发送过程:根据由哈夫曼树得到的编码表送出字符数据;
接收过程:按左0、右1的规定,从根结点走到一个叶结点,完成一个字符的译码。反复此过程,直到接收数据结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值