定义

对一棵有n个节点的二叉树按层序编号,如果编号为i(1<=i<=n)的节点与同样深度的满二叉树中编号为i的节点在二叉树中位置完全相同,则这棵树称为完全二叉树。

理解

这个定义,我反正第一遍看过去没啥感觉。后来才知道,是这个意思。
每一层,从左到右,从碰到缺少子树的结点开始,左侧的兄弟节点一定是满的,右侧的兄弟节点一定是叶子节点,并且缺少子树的节点要么全都缺,要么只能缺右子树。如下图。树1就不符合完全二叉树,5号节点有右子树,没左子树。树3也不符合,5号节点缺枝少叶,但其右侧的兄弟节点却有孩子。而树2就符合完全二叉树。
完全二叉树
我们可以看到,按图中,给每个节点从左到右,从小到大,编号。那么完全二叉树的编号是连续的。不完全二叉树数字不连续。

为什么要这样定义

可以看出来如果我们存储一棵这样的树,我们就可以按照从左到右从上到下的顺序,将每个节点存储到一段连续的存储空间中。虽然还不是很透彻,不过又是一个和“从哪里取,放到哪里”的故事。

相关文章:

  • 2021-08-25
  • 2021-11-08
  • 2021-11-28
猜你喜欢
  • 2021-11-27
  • 2021-12-05
  • 2021-07-07
  • 2021-04-22
  • 2021-06-04
  • 2022-12-23
  • 2022-02-07
相关资源
相似解决方案