获得二叉树深度的非递归实现
2015-08-22 20:14
183 查看
每次从二叉树根节点走到叶子结点(也有其他的非叶子结点),将遍历过的结点入栈,并判断栈的大小,返回栈中结点最大时候的值
代码实现:
转自:http://www.cnblogs.com/GoAhead/archive/2012/05/22/2513847.html
代码实现:
//获得二叉树深度的非递归实现 int TreeDeep(BiTree BT ) { int treedeep=0; stack<BiTree> S; //存放树结点 stack<int> tag; //标志,0:树结点入栈,1:从根到叶子(可能非叶子)一条路径,可以计算深度 BiTree p=BT; while(p!=NULL||!S.empty()) { while(p!=NULL) { S.push(p); //树的结点入栈 tag.push(0); p=p->leftChild; } if(tag.top()==1) { treedeep=treedeep>S.size()?treedeep:S.size(); S.pop(); tag.pop(); p=NULL; } else { p=S.top(); //访问到了树的最底端,置标志,计算树的深度 p=p->rightChild; tag.pop(); tag.push(1); } } return treedeep; }
转自:http://www.cnblogs.com/GoAhead/archive/2012/05/22/2513847.html
相关文章推荐
- 程序员笔试面试常见题总结,更新ing
- poj 1698 二分图多重匹配
- 位级运算的一些事
- Android-基本控件(AutoCompleteTextView,MultiAutoCompleteTextView,ToggleButton)
- 路径(path)题解
- 杭电ACM1425——sort~~水题
- 获取客户端IP
- MySQL必知必会(汇总数据, 聚集函数)
- POJ 1995 Raising Modulo Numbers【快速幂】
- 学习笔记 post和get的区别
- poj 1258 最小生成树 prim
- hdu 1017 A Mathematical Curiosity
- hdu1576 A/B
- Java Map接口LinkedHashMap
- socket编程--socket基本概念
- C#值类型与引用类型
- POJ2431 Expedition
- mysql 纸 mysql_fetch_array OR mysql_fetch_assoc OR mysql_fetch_row
- Mysql和SqlServer互相转换
- hdu1014 Uniform Generator