package com.byhieg.coding2017; /** * Created by byhieg on 17/2/22. * Mail to byhieg@gmail.com */ public class BinaryTree { private BinaryTreeNode root = new BinaryTreeNode(); public BinaryTree(Object rootData){ root = root.insert(rootData); } //左边的值小于等于父节点的值,右边的值大于父节点的值 private void insertNode(BinaryTreeNode root, BinaryTreeNode node) { int value = (int)node.getData(); int rootValue = (int)root.getData(); if (value <= rootValue){ insertLeft(root,node); }else { insertRight(root,node); } } public void insert(Object o) { BinaryTreeNode node = new BinaryTreeNode(); node = node.insert(o); insertNode(root,node); } private void insertLeft(BinaryTreeNode father, BinaryTreeNode node) { if (father.getLeft() == null) { father.setLeft(node); }else{ insertNode(father.getLeft(),node); } } private void insertRight(BinaryTreeNode father, BinaryTreeNode node) { if (father.getRight() == null) { father.setRight(node); } else { insertNode(father.getRight(),node); } } //前序遍历输出书 private void preOrder(BinaryTreeNode node) { if (node != null) { System.out.println(node.getData()); preOrder(node.getLeft()); preOrder(node.getRight()); } } //打印树 public void printTree(){ preOrder(root); } }