如何检查平衡二叉树是否完全平衡C ++

时间:2014-05-23 10:20:12

标签: c++

我是完全平衡的树木的新手,我有一些问题。你能建议一种算法来检查平衡树是否是完全平衡的树吗?我找不到解决这个问题的方法。

这是一棵完美的树吗?

     * 
   *   * 
  * *   *  

因为算法不能很好地使用它并说它不是一个完美平衡的树,因为2 ^ 3 - 1是7但节点是6

1 个答案:

答案 0 :(得分:0)

检查树的级别数是否与此算法的节点数相关:

bool isPerfectlyBalanced = pow(2,binaryTree.levelCount())-1 == tree.numberOfNodes();

那样:

        *
    *       *
  *   *   *   *

级别数= 3,总节点数= 7

pow(2,3)-1 == 7