package com.coding.basic;
public class BinaryTreeNode {
private Object data;
private BinaryTreeNode left;
private BinaryTreeNode right;
//存放当前树
private BinaryTreeNode primary;
public BinaryTreeNode getPrimary() {
return primary;
}
public void setPrimary(BinaryTreeNode primary) {
this.primary = primary;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public BinaryTreeNode getLeft() {
return left;
}
public void setLeft(BinaryTreeNode left) {
this.left = left;
}
public BinaryTreeNode getRight() {
return right;
}
public void setRight(BinaryTreeNode right) {
this.right = right;
}
/**
* 在二叉树中插入
* @param o
* @return
*/
public BinaryTreeNode insert(Object o){
if(o==null){
throw new IllegalArgumentException("二叉树的元素不能为空!");
}
//新建要插入的节点
BinaryTreeNode bt = new BinaryTreeNode();
bt.setData(o);
int value = (int)o;
//当原始二叉树为空时
if(primary==null){
primary = bt;
}else{
BinaryTreeNode bi = primary;
while(true){
if(value<(int)bi.data){
if(bi.left==null){
bi.setLeft(bt);
break;
}else{
bi=bi.left;
}
}else if(value>(int)bi.data){
if(bi.right==null){
bi.setRight(bt);
break;
}else{
bi=bi.right;
}
}else{
System.out.println("当前元素在二叉树已存在");
break;
}
}
}
return bt;
}
}