二叉数的建立和求树的深度
来源:互联网 发布:李勇seo博客 编辑:程序博客网 时间:2024/06/17 02:18
二叉数的建立和求树的深度
Node.java
1.先定义一个节点
public class Node { int data; Node left; Node right; Node(int x){ this.left=null; this.right=null; this.data=x; }}
2.Btree.java 然后定义一个棵二叉数
/** * Created by xizwu on 2016/11/3. * the deep of the Btree */public class Btree { Node root; public Btree(){ root=null; } public void BuildBtree(Node node,int val){ if(root==null) { root=new Node(val); }else{ if(val<node.data){ if(node.left==null) { node.left=new Node(val); }else{ BuildBtree(node.left,val); } }else{ if(node.right==null) { node.right=new Node(val); }else { BuildBtree(node.right, val); } } } } public int deepOfTree(Node node){ /* 树的深度 * */ if(node ==null){ return 0; } int left=deepOfTree(node.left); int right=deepOfTree(node.right); if(left==0&&right==0) return 1; return Math.max(left,right)+1; } public int minDepth(Node node){ /* * 根到叶子节点 的最短路径 * */ if(node==null) return 0; int left=minDepth(node.left); int right=minDepth(node.right); if(left==0 &&right==0) return 1; if(left==0) left=Integer.MAX_VALUE; if(right==0) right=Integer.MAX_VALUE; return Math.min(left,right)+1; } public void preoder(Node node){ if(node==null) { return;} System.out.println(node.data); preoder(node.right); preoder(node.left); } public void inorder(Node node){ if(node==null){ return; } inorder(node.right); System.out.println(node.data); inorder(node.right); } public void postorder(Node node){ if(node==null){ return; } postorder(node.right); System.out.println(node.data); postorder(node.right); }}
3.执行测试程序
/** * Created by xizwu on 2016/11/3. */public class Maintest { public static void main(String[] args){ Btree mytree=new Btree(); int[] a={2,4,12,6,45}; for (int i=0;i<a.length;i++) { mytree.BuildBtree(mytree.root,a[i]); } int b=mytree.deepOfTree(mytree.root); System.out.println(b); System.out.println("#####################"); mytree.preoder(mytree.root); }}
0 0
- 二叉数的建立和求树的深度
- 求二叉数的深度和宽度
- 求二叉数的深度和宽度
- 【算法导论】求二叉树的叶子数和深度
- 求二叉树的深度、宽度和叶子结点数
- 求二叉树的深度(中后建立)
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和广度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽度
- 求二叉树的深度和宽
- 二叉树的三种遍历的应用(表达式,求深度,叶子数,结点数,二叉树的建立,复制)
- 已知二叉树的节点数,求树的深度
- SQL:触发器
- Jsp9个内置对象详解
- JSP九大内置对象的作用和用法总结?
- NOIP2013 提高组复赛解题报告
- 怎样设计一个好的数据库
- 二叉数的建立和求树的深度
- Tram
- 数据库视图定义及其相关操作
- ubuntu上简单操作(三)——安装chrome浏览器
- Javascript中关于call,apply,bind这三个函数的用法
- bzoj 3887: [Usaco2015 Jan]Grass Cownoisseur(spfa+tarjan)
- 企业级HBase集群搭建
- 数据库存储过程实例介绍
- 【Object - c 高级】01 内存管理 MRC