数据结构与算法9 - 二叉树概念

不限制每个节点的子节点个数

专业术语
高度、深度:树的层数
节点:每个元素代表一个节点
根节点:无父亲的节点
子节点:父节点的儿子
叶子:无儿子的节点
节点度:当前节点的子节点个数
树的度:树中最大的节点度
平衡因子:左右子树的高度差
结点带权路径长度:结点权 * (根结点到当前的结点路径的长度)
树的带权路径长度(WPL):叶子结点的带权路径长度和
1.1 二叉树

每个元素的子节点个数最多为2,所以有左右节点之分

1.1.1 满二叉树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sff9naij-1587801140412)(en-resource://database/4737:1)]

概念:除了最后一层,所有层的节点的子节点个数都是2


节点数n = 2^(h-1) → h为树的深度

1.1.2 完全二叉树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Waezcnfp-1587801140423)(en-resource://database/4739:1)]

满足下列条件:

  • 最后一层元素必须左到右的元素紧凑相连
  • 抹去最后一层节点,则该树为满二叉树

1.1.3 堆

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xn1Iqxn1-1587801140430)(en-resource://database/4755:1)]

概念:

  • 大顶堆: 节点值 >= 左右节点值的完全二叉树
  • 小顶堆: 节点值 <= 左右节点值的完全二叉树

1.1.4 斜树

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K8Z7TdW2-1587801140436)(en-resource://database/4743:1)]

概念:所有父节点的子节点只有左节点( 右节点 )

1.1.5 二叉查找( 排序 )树

该树中序遍历元素一定是从小到大排序的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cvg5xWMc-1587801140441)(en-resource://database/4749:1)]

满足下列条件

  1. 左节点小于父节点
  2. 右节点大于父节点
  3. 所有节点的左右子树都需满足 1、2条件

1.1.6 平衡二叉树 - AVL树 - 各节点平衡因子<=1

左右子树高度相差不超过1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mbW3R8MD-1587801140443)(en-resource://database/4753:1)]

满足下列条件:

  1. 节点数 = 0 或者 左右子树的深度差 <= 1
  2. 树中每个节点的需要满足1条件

1.1.7 赫夫曼树(最优二叉树) - 树带权路径长度最小的树(相同数量的相同权值叶子节点)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-am9NEf2R-1587801140446)(en-resource://database/32476:1)]

1.1.0 遍历
方式
前序遍历:根 → 左子树 → 右子树
中序遍历:左子树 → 根 → 右子树
后序遍历:左子数 → 右子树 → 根
层次遍历:顶层开始琢层进行遍历,每层从左到右遍历



[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xeYt74Is-1587801140451)(en-resource://database/4741:1)]

图中的完全二叉树四大遍历形式的结果:

  1. 前序遍历: 9 30 46 58 49 79
  2. 中序遍历: 46 30 58 9 79 49
  3. 后续遍历: 46 58 30 79 49 9
  4. 层次遍历: 9 30 49 46 58 79
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值