!!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!!

作者:mohist

-- 欢迎指正--

平衡二叉树特点:

  任意一个结点的平衡因子(左子树高度 - 右子树高度)的绝对值不会超过1。

  下面的方法,若是平衡二叉树,则还会返回树的高度

结点结构:

struct node
{
int data;
int height;
node *lc;
node *rc;
node()
: data(0)
, height(0)
, lc(0)
, rc(0)
{ }
};

函数源码:

// 判断是否为平衡二叉树,若是,则返回树的高度
// false - 不是平衡二叉树,true-是平衡二叉树
bool is_avl_tree(node *pnode, int &deepth)
{
if ( NULL == pnode)
{
deepth = 0;
return true;
} int left_h = 0;
int right_h = 0; if (is_avl_tree(pnode->lc, left_h) && is_avl_tree(pnode->rc, right_h))
{
int diff = abs(left_h - right_h);
if (1 < diff)
return false;
deepth = 1 + ( (left_h > right_h) ? left_h : right_h); return true;
} return false;
}

最新文章

  1. Linux 架构
  2. 嵌入式Linux驱动开发日记
  3. 【mysql】一个关于order by排序的问题
  4. 2D Tookit (一) 精灵切割
  5. Dom方式解析XML
  6. SQL 能做什么?
  7. 【译】typeof null的前世今生
  8. windows下一个,OracleServiceXXX和Oracle 关系实例
  9. XPath语法
  10. Cesium 鼠标拾取椭球、地形、模型坐标点(经度+纬度+高程)
  11. openjudge(三)
  12. Hadoop平台基本组成
  13. flutter 解析json
  14. Hdoj 1785.You Are All Excellent 题解
  15. 如何让eclipse恢复默认布局
  16. win7(64位)Sql server 用T-sql读取本地数据文件dbf的数据文件
  17. hibernate中基于主键映射1-1关联关系和基于外键映射1-1关联关系的不同
  18. 在vue中使用weixin-js-sdk自定义微信分享效果
  19. 003-Go初探Iris
  20. 架构-到底什么时候该使用MQ【转】

热门文章

  1. Codeforces 1503E - 2-Coloring(组合数学)
  2. Session和Cookie的原理,以及在分布式应用中出现的问题和解决方案
  3. Perl语言入门10-13
  4. Bedtools genomecov 计算覆盖度
  5. RNA-seq 生物学重复相关性验证
  6. JS简单入门
  7. PowerToys插件扩展(类似Alfred)
  8. 疯了吧!这帮人居然用 Go 写“前端”?(二)
  9. SpringBoot让测试类飞起来的方法
  10. Java 总纲