【笔记14】树的基本概念,二叉树,真二叉树,满二叉树,完全二叉树

简介: 节点、根节点、父节点、子节点、兄弟节点空树:没有任何节点的树一棵树可以只有 1 个节点(即只有根节点)子树、左子树、右子树

一、树(Tree)的基本概念

在这里插入图片描述

  • 节点、根节点、父节点、子节点、兄弟节点
  • 空树:没有任何节点的树
  • 一棵树可以只有 1 个节点(即只有根节点)
  • 子树、左子树、右子树

---

  • 节点的(degree):子树的个数
  • 树的度:全部节点的度的最大值
  • 叶子(leaf)节点:度为 0 的节点
  • 非叶子节点
  • 层数(level):根节点是第 1 层,根节点的子节点是第 2 层,以此类推
  • 节点的深度(depth):从根节点开始到当前节点的唯一路径上的节点总数(节点13的深度是5;节点6的深度是3)
  • 节点的高度(height):从当前节点开始到最远叶子节点的路径上的节点总数(节点13的高度是0;节点6的高度是3)
  • 树的深度:全部节点深度中的最大值
  • 树的高度:全部节点高度中的最大值
  • 树的深度等于树的高度

---

  • 有序树:树中节点的子节点之间有顺序关系
  • 无序树:树中节点的子节点之间没有顺序关系
  • 森林:由 m(m >= 0)棵互不相交的树组成的集合


二、二叉树(Binary Tree)

(1) 二叉树的特点

① 每一个节点的最大为 2(最大拥有 2 棵子树)
② 左右子树是有顺序的
③ 即使某节点只有一棵子树,也严格区分左右子树
④ 二叉树是有序树

(2) 二叉树的性质

① 非空二叉树的第 i 层最多有 2^(i-1) 个节点(i >= 1)
② 高度为 h 的二叉树上最多有 2^h - 1 个节点(h >= 1)

③ 对于任意一棵非空二叉树,如果叶子节点的个数为 n0,度为 2 的节点个数为 n2,则有:n0 = n2 + 1【对于非空二叉树,没有子树的节点的个数等于有两棵子树的节点的个数加1】
性质 ③ 的证明:

  • 假设度为 1 的节点个数为 n1,那么二叉树的节点总数 n 等于 n0 + n1 + n2
  • 二叉树的边数 T = n1 + n2 * 2 = n - 1 = n0 + n1 + n2 - 1【一个节点的边数等于度;除了根节点,每个节点的顶部都有一条边】
  • 化简:T = n1 + n2 * 2 = n - 1 = n0 + n1 + n2 - 1


三、真二叉树(Proper Binary Tree)

特点:全部节点的度要么为0,要么为2(没有度为1的节点)


四、满二叉树(Full Binary Tree)

特点:
① 在真二叉树的基础上,所有的叶子节点都在最后一层
② 在同样高度的二叉树中,满二叉树的叶子节点数量最多,总结点数量最多
③ 满二叉树一定是真二叉树,但真二叉树不一定是满二叉树

性质:

  • 若满二叉树的高度为 h(h >= 1)

-- 第 i 层的节点数量是 2^(i-1)
-- 叶子节点数量是 2^(h-1)
-- 总节点数是2^h - 1


五、完全二叉树(Complete Binary Tree)

(1) 完全二叉树特点

① 叶子节点只会出现在最后层,且最后一层的叶子节点都靠对齐
② 完全二叉树从根节点到倒数第二层是一棵满二叉树
③ 满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树

(2) 完全二叉树性质

  • 度为 1 的节点只有左子树
  • 度为 1 的节点要么是 1 个,要么是 0 个
  • 同样节点数量的二叉树,完全二叉树的高度最小
相关文章
|
7月前
|
存储 算法
【C/数据结构与算法】:树和二叉树
【C/数据结构与算法】:树和二叉树
49 0
|
存储 算法 数据库管理
树和二叉树(二)
树和二叉树(二)
|
存储 人工智能 BI
树和二叉树(一)
树和二叉树(一)
|
存储 移动开发 算法
树和二叉树知识点总结
树和二叉树知识点总结
11683 0
|
存储 算法 图形学
LeetCode:二叉树的前、中、后序遍历——如何创建一棵【二叉树】
二叉树是一种树形数据结构,其每个节点最多只有两个子节点。通常将节点分为三种类型:根节点、内部节点和叶子节点。其中,根节点是二叉树的唯一访问起点,内部节点具有一个父节点和两个子节点,而叶子节点没有子节点。二叉树的底层数据结构可以使用链表或数组来实现。
131 0
|
存储 机器学习/深度学习 算法
九、树和二叉树
九、树和二叉树
九、树和二叉树
树和二叉树,完美/满二叉树和完全二叉树之间的区别对比
树和二叉树,完美/满二叉树和完全二叉树之间的区别对比
【数据结构】二叉树的概念 | 满二叉树和完全二叉树 | 二叉树的基本性质
在上一章中我们正式开启了对数据结构中树的讲解,介绍了树的基础。本章我们将学习二叉树的概念,介绍满二叉树和完全二叉树的定义,并对二叉树的基本性质进行一个简单的介绍。本章附带课后练习。
265 0
【数据结构】二叉树的概念 | 满二叉树和完全二叉树 | 二叉树的基本性质