二叉树的节点个数和深度(非递归)
2015-09-11 10:50
381 查看
二叉树的节点个数
代码实现
二叉树的深度
代码实现
代码实现
int count_tree(TreeNode *bt) { int count = 0; if(NULL == bt){ //cout<<"tree is empty\n"; return 0; } queue<TreeNode *> que; que.push(bt); while(!que.empty()){ bt = que.front(); que.pop(); count++; //print(bt->data); if(bt->lchild) que.push(bt->lchild); if(bt->rchild) que.push(bt->rchild); } return count; }
二叉树的深度
代码实现
int depth_tree(TreeNode *bt) { int depth = 0,count = 0; if(NULL == bt){ cout<<"tree is empty\n"; return 0; } stack<TreeNode *> st; stack<int> flag; int first = 1,second = 2; while(bt || !st.empty()){ while(bt){ st.push(bt); flag.push(first); bt = bt->lchild; count++; } if(1 == flag.top()){ flag.pop(); flag.push(second); bt = st.top(); bt = bt->rchild; } else{ if(count > depth) depth = count; while(!flag.empty() && 2 == flag.top()){ flag.pop(); bt = st.top(); st.pop(); count--; } bt = NULL; } } return depth; }
相关文章推荐
- C++容器使用经验总结
- 嵌入式Linux中移植vim编辑器
- Jquery跨域获得Json(实例)
- OpenGL ES Emulator横向比较
- Yii2 游客、用户防范规则和限制
- JQuery中Bind()事件用法分析
- Hbase存储详解
- (jsp与servlet)解决乱码问题的方式
- JavaScript实现算术平方根算法-代码超简单
- java框架spring中的opensessioninview有什么作用
- 如何实现将MathType恢复默认操作
- Linux网络编程--poll()和ppoll()函数
- 第二周项目2—程序的多文件组织
- AnimatePacker的使用
- XMPP(二)-基于asmack+openfire的安卓客户端(仿QQ)的介绍以及个人心得
- ATS 5.3.0中利用grep得到纯净的配置文件
- ADO技术连接SQL数据库
- windows下搭建OpenGL ES开发环境
- java调用webservices
- 单元测试 全局方法列表