完全二叉树
我们知道树是一种非线性数据结构。它对儿童数量没有限制。二叉树有一个限制,因为树的任何节点最多有两个子节点:左子节点和右子节点。
什么是完全二叉树?
完全二叉树是一种特殊类型的二叉树,其中树的所有级别都被完全填充,除了最低级别的节点从尽可能左侧填充之外。
完全二叉树的一些术语:
根: 没有边来自父节点的节点。示例-节点A
子节点: 具有某些传入边的节点称为子节点。示例 – 节点 B、F 分别是 A 和 C 的子节点。
兄弟节点:具有相同父节点的节点是兄弟节点。示例 - D、E 是兄弟姐妹,因为他们有相同的父母 B。
节点的度数: 特定父节点的子节点数量。示例 - A 的次数为 2,C 的次数为 1。D 的次数为 0。
内部/外部节点: 叶节点是外部节点,非叶节点是内部节点。
级别: 计算到达目标节点的路径中的节点数。示例 - 由于节点 A 和 E 形成路径,因此节点 D 的级别为 2。
高度: 到达目标节点的边数,根的高度为 0。示例 – 节点 E 的高度为 2,因为它有两条距根的边。
我们知道树是一种非线性数据结构。它对叶子节点数量没有限制。二叉树有一个限制,因为树的任何节点最多有两个子节点:左子节点和右子节点.
什么是完全二叉树?
完全二叉树是一种特殊类型的二叉树,其中树的所有级别都被完全填充,除了最低级别的节点尽可能左侧填充之外。
完全二叉树的一些术语:
根:没有边来自父节点的节点。示例-节点A
子节点: 具有某些传入边的节点称为子节点。示例 – 节点 B、F 分别是 A 和 C 的子节点。
兄弟节点:具有相同父节点的节点是兄弟节点。示例 - D、E 是兄弟姐妹,因为他们有相同的父母 B。
节点的度数: 特定父节点的子节点数量。示例 - A 的次数为 2,C 的次数为 1。D 的次数为 0。
内部/外部节点: 叶节点是外部节点,非叶节点是内部节点。
级别: 计算到达目标节点的路径中的节点数。示例 - 由于节点 A 和 E 形成路径,因此节点 D 的级别为 2。
高度:到达目标节点的边数,根的高度为 0。示例 – 节点 E 的高度为 2,因为它有两条距根的边。
完全二叉树的性质:
完全二叉树被称为真二叉树,其中所有叶子都具有相同的深度。
在完全二叉树中,深度d处的节点数为 2 d。
在具有n 个节点的完全二叉树中,树的高度为log(n+1) 。
除最后一个级别外所有级别均已满。
完美二叉树与完全二叉树:
具有最大节点数、高度为“h”的二叉树是完美二叉树。 对于给定高度h,节点的最大数量为 2h+1-1。
高度为 h 的完全二叉树是高度为h-1的完美二叉树,并且在最后一层中元素按从左到右的顺序存储。
示例1:
给定二叉树的高度为 2,该树中的最大节点数为 n = 2 h+1 -1 = 22+1 -1 = 23 -1 = 7。 因此我们可以断定它是一个完美的二叉树。 现在对于一个完整的二叉树,它的高度达到h-1,即;1、最后一层元素按照从左到右的顺序存储。因此它也是一