数据结构-【树】

本文介绍了二叉树的各种类型,包括满二叉树、完全二叉树、二叉排序树和平衡二叉树的特点,以及二叉树的遍历方法如先序、中序和后序遍历。同时,文章还讲解了树的存储结构和转换,以及哈夫曼树的概念,强调了哈夫曼树在优化带权路径长度中的应用。
摘要由CSDN通过智能技术生成

术语:

节点的高度:也就是树的高度(从下往上数)

节点的层次(深度):也同数的高度(从上往下数)

节点的度也就是孩子节点 如D的度为3
树的度: 各节点度的最大值
如A树:度为3 (节点B-2 ;C-1;D-3)
在这里插入图片描述

总结点:

在这里插入图片描述

  1. 结点数=总度数+1
  2. 度为m的树,第i层至多有m^i-1个节点
  3. 高度为h的m叉树至多有在这里插入图片描述个结点
  4. 高度为h的m叉树至少有h个结点
  5. 高度为h、度为m的树至少有 h+m-1 个结点

二叉树

结点位置计算:

当前节点 i
左孩子:2i
右孩子:2i+1
父节点:i/2

满二叉树&&完全二叉树

注意两个区分
满二叉树:一颗高度为h,且含有2^h - 1节点的二叉树
特点:1、每一层节点都满的
2、不存在度为1的节点
3、只有最后一层有叶子结点

完全二叉树:
1、最多只有一个度为1的节点
2、只有最后两层可能会有叶子结点
在这里插入图片描述

二叉排序树

特点:有序的二叉树。左边小于右边,左边<中间节点<右边

平衡二叉树

特点:左右子树,深度之差不超过1
在这里插入图片描述

二叉树遍历

先中后遍历

中序:左根右(左中右)
先序:根左右(中左右)
后序:左右根(左右中)
例如:
中序: D-B-E-A-F-C-G
先序: A-B-D-E-C-F-G
后序: D-E-B-F-G-C-A
在这里插入图片描述

层次遍历

就按照一层一层进行遍历,从左–>右

根据遍历序列恢复二叉树

练习
在这里插入图片描述
后序:后序–从最后看 根节点,然后再根据中序节点确定根节点的两边节点
中序:
在这里插入图片描述

二叉树线索化

特点:也就是将二叉树的叶子结点,的后继,进行分别指向,当前节点的前驱或者是后继。 叶子结点的左孩子指向[前驱],右孩子指向[后继]
rtag = 0 表示有正常右孩子,rtag=1 表示有线索节点(右孩子为后继结点)

todo:代码5.3.2—2

总结点

n = 总结点 nº:度为0的节点;n₁:度为1的节点;n₂… 二叉树最多度为2

  1. n= n₁ + 2n₂ +1

  2. n0 = n₂+1

  3. 对于完全二叉树,可以由上面的公式推出如下 n0+n₂ = 一定是奇数,切n₁ 可能是1/0在这里插入图片描述

  4. 在这里插入图片描述

森林:森林是m 颗互不相交的树

树的存储结构

双亲表示法

简略:即也就是数组进行存储,子节点存储这父节点的下标。

在这里插入图片描述

孩子表示法

简略:即也就是数组+链表的形式进行存储。

在这里插入图片描述

树的转换(重点)

按照一层一层的顺序进行,第一层:A 第二层:B,C…

指针链接 也是从左到右的方式:如某个指针下面只有一个节点了,那么进行放在左节点。

树转二叉树

树转换二叉树
在这里插入图片描述

森林转换二叉树

在这里插入图片描述

二叉树转换树

在这里插入图片描述

二叉树转换深林
在这里插入图片描述

树和深林的遍历

运算角度来看:

深林先序 == 二叉树先序

深林中序 == 二叉树后序

树的先序 == 二叉树先序
树的后序 == 二叉树的后序

逻辑角度来看

在这里插入图片描述

练习

森林】先序
在这里插入图片描述

深林】中序
在这里插入图片描述
树的后跟遍历
在这里插入图片描述

哈夫曼树(重要)

WPL:带权路径长度
带权路径最小的就是为 哈夫曼树
哈夫曼树不存在度为1的节点
哈夫曼树的总结点为 2n-1

如何求出WPL

在这里插入图片描述

构造哈夫曼树

**构造 哈夫曼树是每次都根据最小的两个值进行构成 **
在这里插入图片描述

哈夫曼编码

根据 左0右1的方式,进行构造 当然也可以 左1右0 ,这样可以将 字符进行构成二进制编码。,当然 编码也是不唯一的。

在这里插入图片描述

例子:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值