如何制作具有6个节点的完整二叉树?

时间:2019-04-28 19:27:28

标签: algorithm binary-tree

我对完整二叉树和完整二叉树非常了解。但是无法制作只有6个节点的完整二叉树。

3 个答案:

答案 0 :(得分:1)

答案是No。您不能只创建6个节点的Full Binary树。正如Wikipedia中的定义所说:

  

完整的二叉树(有时称为适当树或平面   二叉树)是其中每个节点具有0或2的树   孩子们。定义完整二叉树的另一种方法是递归   定义。完整的二叉树是:

     

单个顶点。

     

一棵树,其根节点有两个子树,两个子树都是完整的二叉树。

我注意到的另一个有趣的特性是,制作完整的二叉树所需的节点数始终是奇数。

答案 1 :(得分:1)

不幸的是,详细说明@ vivek_23的答案是不可能的。有一个美丽的定理说如下:

  

定理:任何完整的二叉树都有2L-1个节点,其中L是树中叶子节点的数量。

该定理背后的直觉实际上很简单。想象一下,您采用了完整的二叉树并从中删除所有内部节点。现在,您有一个由L个单节点完整二叉树组成的森林,每个叶子一棵。现在,一次添加一个内部节点。每次执行此操作时,您将在森林中采摘两棵不同的树,并将它们合并为一棵树,这会使森林中的树数减少一棵。这意味着您必须具有精确的L-1个内部节点,因为如果您拥有更少的内部节点,那么您将无法将森林中的所有树木连接在一起,而如果拥有更多的节点,您将用光所有树木。结合起来。

一个完整的二叉树中总共有2L-1个节点,这意味着一个完整的二叉树中的节点数始终是奇数,因此您不能创建具有6个节点的完整的二叉树。但是,您可以创建具有任意数量的奇数节点的完整二叉树-您能弄清楚如何证明这一点吗?

希望这会有所帮助!

答案 2 :(得分:1)

查看完整的二叉树具有奇数个节点的另一种方法:

从完整的二叉树(Wikipedia)的定义开始:

  

一棵树,其中每个节点都有0个或2个子节点。

这意味着 child 节点的总数为偶数(0 + 2 + 2 + 0 + ... + 2始终为偶数)。只有一个节点不是另一个节点的子节点,它是根节点。因此,考虑到该节点,总数就变得很奇怪。

结果是,没有具有6个节点的完整二叉树。