如果这是一个完整的二叉树,为什么以下不是?
答案 0 :(得分:5)
参见维基百科:
所以涉及到歧义。使用complete = perfect
定义,这两个不完整。但是第二个定义是第一个,因为除了底层之外它是完美的,而底层的所有叶子都在树的最左边。
作为旁注,维基百科引用了NIST,NIST page在完美的二叉树下表明了这一点:
This kind of tree is called "complete" by some authors ([CLR90, page 95], Leighton) and "full" by others (Budd page 331, Carrano & Prichard page 429, Ege, [HS83, page 225], and Sahni page 461).
对于那些不认识的人,CLR是Corman
,Leiserson
,Rivest
,他们是Introduction to Algorithms
的作者。
然后,第二个定义用于KDE的“计算机编程艺术”(参见Complete Binary Tree at Wolfram Mathworld),这是算法领域中少数几本比CLR更重要的书籍之一。
答案 1 :(得分:0)
供参考,请参阅此http://www.youtube.com/watch?v=tORLeHHtazM
naveen garg博士的数据结构。 它们都不是完整的二叉树。因为完整的二叉树是二级树,在级别i有(2 ^ i)个节点。