数据结构学习小记
来源:互联网 发布:松下h3自动门重量算法 编辑:程序博客网 时间:2024/05/17 01:30
最近在学数据结构,对递归的算法老是绕不过来。在此转一些用到递归的算法,以供学习参考
问题:如何判定一棵二叉树是否是平衡二叉树<转来的>
首先编写一个计算二叉树深度的函数,利用递归实现。
template<typename T>static int Depth(BSTreeNode<T>* pbs){if (pbs==NULL)return 0;else{int ld = Depth(pbs->left);int rd = Depth(pbs->right);return 1 + (ld >rd ? ld : rd);}}
下面是利用递归判断左右子树的深度是否相差1来判断是否是平衡二叉树的函数:
template<typename T>static bool isBalance(BSTreeNode<T>* pbs){if (pbs==NULL) return true;int dis = Depth(pbs->left) - Depth(pbs->right);if (dis>1 || dis<-1 )return false;elsereturn isBalance(pbs->left) && isBalance(pbs->right);}
ref:http://www.zhuxinquan.com/cn/2006/03/post_3.html
- 数据结构学习小记
- 数据结构小记
- pandas小记:pandas数据结构
- 数据结构课程 小记
- C++数据结构小记
- 学习小记
- 学习小记
- 学习小记
- 学习小记
- 【小记】深度学习学习
- Maven学习小记
- struts-helloapp 学习小记
- struts-helloapp学习小记
- 正则表达式学习小记
- Hibernate学习小记
- c++primer学习小记
- Log4j学习小记
- java 学习小记
- WSDL的详解笔记(一)
- 输出二维数组任一行任一列的值
- 构造函数的杂感(一)
- 指针 数组 两个方式调用数组元素 比较大小
- Android的市场前景
- 数据结构学习小记
- linux 0.11源码阅读笔记
- FileZilla 425 Can't open data connection. 的错误解决
- 三极管的状态
- [随想]google音乐上对Beyond乐队的介绍(转载)
- pku2724
- 虚拟机下安装和配置minicom
- javascript 学习笔记(6)
- 解决 C++错误 error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class CString' (or there is no