树--计算树的深度
来源:互联网 发布:java过滤器的工作原理 编辑:程序博客网 时间:2024/06/07 18:14
package com.Tree;import java.util.Stack;/* * 计算二叉树深度方法(递归 和 非递归) */public class Depth {//recursive depth()public int recDepth(BTNode p) {int ldepth, rdepth;if (p == null)return 0;else {ldepth = recDepth(p.left);rdepth = recDepth(p.right);return Math.max(ldepth, rdepth) + 1;}}//non-recursive depth();//中序非递归public int nonRecDepth(BTNode p) {Stack<BTNode> stack1 = new Stack<BTNode>();Stack<Integer> stack2 = new Stack<Integer>();int curdep, maxdep = 0;curdep = 1;while (p != null || stack1.empty() == false) {while (p != null) {stack1.push(p);stack2.push(curdep);p = p.left;curdep++;}p = stack1.pop();curdep = stack2.pop();if (p.left == null && p.right == null)maxdep = Math.max(curdep, maxdep);p = p.right;curdep++;}return maxdep;}//前序非递归public int prenonRecDepth(BTNode p) {Stack<BTNode> stack1 = new Stack<BTNode>();Stack<Integer> stack2 = new Stack<Integer>();int curdep, maxdep = 0;curdep = 1;while (p != null || stack1.empty() == false) {while (p != null) {if (p.left == null && p.right == null)maxdep = Math.max(curdep, maxdep);stack1.push(p);stack2.push(curdep);p = p.left;curdep++;}p = stack1.pop();curdep = stack2.pop();p = p.right;curdep++;}return maxdep;}}
0 0
- 计算树的深度
- 树--计算树的深度
- 计算二叉树的深度
- 计算二叉树深度
- 二叉树深度计算
- 计算二叉树的深度和宽度
- 计算一个二叉树的深度
- 如何计算完全二叉树的深度
- 计算二叉树的深度,结点的个数。
- 计算树的深度,存储结构是二叉链表
- uri的深度计算
- 计算二叉树深度函数 递归实现
- 二叉树的遍历与深度和节点数的计算代码实现
- 计算二叉树的深度,判断二叉树是否是平衡二叉树
- 计算二叉树的深度+判断二叉树是否是平衡二叉树
- 基本数据结构——二叉树的建立,遍历,求叶子节点,深度计算
- python解析页面DOM树形成xpath列表,并计算DOM树的最大深度
- Java代码分别用递归和非递归方式计算二叉树的最大深度
- cocos2dx加载texturepacker遇到的小麻烦
- Intel media sdk 自己笔记
- LeetCode 解题报告 LRU Cache
- git教程2--------工作区和暂存区
- C++中struct与class的区别
- 树--计算树的深度
- 创新采用者的五种类型
- Android组件之自定义ContentProvider
- git教程3---------管理修改
- 树----创建二叉树
- 好的产品如何走向市场
- fzu 2028(dfs)
- Android组件之自定义ContentProvider
- Tomcat中的ssl安全信道的实现