/**
* Created by peter on 2017/2/23.
*/
public class BinaryTree {
private BinaryTreeNode root=null;//根节点
public BinaryTree(){
}
public BinaryTree(BinaryTreeNode root){
this.root = root;
}
//插入节点
public void insert(BinaryTreeNode binaryTreeNode){
if(root==null){
root = binaryTreeNode;
return;
}
BinaryTreeNode parent =null;//用来表示当前节点的父节点
BinaryTreeNode visit =root;//用来查找合适的插入位置
while (visit!=null){
if(binaryTreeNode.getData()<=visit.getData()){
parent = visit;
visit = visit.getLeft();
}else{
parent = visit;
visit = visit.getRight();
}
}
//直到找到插入位置
if(parent.getData()>=binaryTreeNode.getData()){
//插入到左孩子
parent.setLeft(binaryTreeNode);
}else{
//插入到右孩子
parent.setRight(binaryTreeNode);
}
}
//输出二叉树每个节点
public void printBinaryTreeNode(BinaryTreeNode root){
if(root==null){
return;
}
if(root.getLeft()!=null){
printBinaryTreeNode(root.getLeft());
}
System.out.println(root.getData());
if(root.getRight()!=null){
printBinaryTreeNode(root.getRight());
}
}
//获取根节点
public BinaryTreeNode getRoot(){
return root;
}
}