二叉树的构建以及先中后序遍历
2016-03-02 11:18
387 查看
package testcase; import java.util.ArrayList; /** * * @decription 二叉树的构建以及先中后序遍历 * @author bjliuzezhou * @date 2016年2月23日 */ public class TypicalArithmetic_03 { public static void main(String[] args) { TypicalArithmetic_03 offer = new TypicalArithmetic_03(); TypicalArithmetic_03.Node root = offer.new Node(10,"root"); TypicalArithmetic_03.Node a = offer.new Node(5,"a"); TypicalArithmetic_03.Node b = offer.new Node(6,"b"); TypicalArithmetic_03.Node c = offer.new Node(1,"c"); TypicalArithmetic_03.Node d = offer.new Node(62,"d"); TypicalArithmetic_03.Node e = offer.new Node(55,"e"); TypicalArithmetic_03.Node f = offer.new Node(66,"f"); TypicalArithmetic_03.Node g = offer.new Node(6,"g"); ArrayList<Node> binaryNodes = new ArrayList<Node>(); binaryNodes.add(a); binaryNodes.add(b); binaryNodes.add(c); binaryNodes.add(d); binaryNodes.add(e); binaryNodes.add(f); binaryNodes.add(g); for(Node node : binaryNodes){ offer.buildTree(root, node); } offer.InOrder(root); } class Node{ Node(int value,String name){ this.value = value; this.name = name; } Node left; Node right; int value; String name; public Node getLeft() { return left; } public void setLeft(Node left) { this.left = left; } public Node getRight() { return right; } public void setRight(Node right) { this.right = right; } } public void buildTree(Node root,Node node){ if(root == null){ root = node; }else{ if(root.value >= node.value){ if(root.left == null) root.left = node; else buildTree(root.left,node); }else{ if(root.right ==null) root.right = node; else buildTree(root.right,node); } } } public void preOrder(Node root){ if(root != null){ System.out.println(root.value); preOrder(root.left); preOrder(root.right); } } public void InOrder(Node root){ if(root != null){ InOrder(root.left); System.out.println(root.value); InOrder(root.right); } } public void postOrder(Node root){ if(root != null){ postOrder(root.left); postOrder(root.right); System.out.println(root.value); } } }
相关文章推荐
- ArcGIS教程:设置地理处理环境
- 1059. Prime Factors (25)
- discuzX 3.1/2 如何重新安装
- QtGui继承关系树
- c++ 思考
- Spring/SpringMvc 配置文件常用标签解释
- android点点滴滴
- deepin linux系统 图像处理及机器学习开发环境配置方法
- 根据图片名获取ID
- mybatis-config.xml配置文件及sql分页查询的实现
- jquery在线引用地址
- 二维数组的查找
- 文章标题
- java对时间操作的常用总结
- Android系统架构
- Android: 保存键值集(SharedPreferences)
- 谷歌汽车出误判曝光 6大奇葩科技更牛
- spring整合velocity和freemaker
- Oracle DBLink 问题总结
- Qt 读取文件,获得文件名、路径