Java 完全二叉树和完全二叉树定义

Java 完全二叉树和完全二叉树定义,java,search,tree,binary-tree,binary-search-tree,Java,Search,Tree,Binary Tree,Binary Search Tree,我对二叉树类型没有什么疑问 完全二叉树:如果所有级别都已完全填充(最后一个级别除外),并且最后一个级别的所有键都尽可能保留,则二叉树就是完全二叉树 几乎每一个完整二叉树的例子都是这样给出的,最后一个节点中只有一个子节点 18 / \ 15 30 / \ / 40 50 100 没关系 我的问题: 下面的树也是一个完整的二叉树吗 18

我对二叉树类型没有什么疑问

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

几乎每一个完整二叉树的例子都是这样给出的,最后一个节点中只有一个子节点

          18
       /       \  
     15         30  
    /  \        /  
  40    50    100   
没关系

我的问题: 下面的树也是一个完整的二叉树吗

           18
       /       \  
     15         30  
    /  \        
  40    50    
我知道它也是完整的二叉树

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

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

解释

完整二叉树:

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

完整二叉树:

任何二叉树,其中除叶节点外的所有节点都有两个子节点,则将其视为完全二叉树。第一棵树不是完整的二叉树,但第二棵树是完整的二叉树

第二个答案

不,如果树是完整的,这并不意味着你可以称它为一个完美的二叉树

如果一棵二叉树是满的,并且所有的叶子都在同一水平上,那么它就被认为是完美的。在您的示例中,它不是完美的二叉树