完整的二叉树和完善的二叉树定义

时间:2019-02-08 06:20:12

标签: java search tree binary-tree binary-search-tree

我对二叉树类型几乎没有疑问。

完整的二叉树:如果所有级别都已完全填充(最后一个级别除外),并且最后一个级别具有所有可能的键,则二叉树就是完整的二叉树。

几乎所有关于完整二叉树的例子都是这样给出的。最后一个节点中只有一个是左子节点。

          18
       /       \  
     15         30  
    /  \        /  
  40    50    100   

没关系。

我的问题: 以下树也是完整的二叉树吗?

           18
       /       \  
     15         30  
    /  \        
  40    50    

我也知道它是完整的二叉树。

我的第二个问题: 如果它既是完整的二叉树又是完整的二叉树,我们可以说它也是完美的二叉树吗? (我写的最后一棵树)

1 个答案:

答案 0 :(得分:1)

第一个答案

是的,这棵树也可以称为完整的二叉树。

说明

完整的二叉树:

正如您提到的,任何一棵树中所有级别都被完全填充,而最后一个级别的键则尽可能地保留其所考虑的二叉树。此条件满足您的示例,因此它是完整的二叉树。

完整的二叉树:

任何二叉树,其中除叶节点以外的所有节点都有两个子树,然后将其视为完整二叉树。问题中的第一棵树不是完整的二叉树,而第二棵树是完整的二叉树。

第二个答案

否,如果树既完整又完整,则并不意味着您可以将其称为完美的二叉树。

如果二叉树已满并且所有叶子都在同一级别上,则认为它是完美的。在您的示例中,它不是完美的二叉树。