package com.coding.basic;
public class BinaryTreeNode <Object extends Comparable<Object>> {
private Object data;
private BinaryTreeNode left;
private BinaryTreeNode right;
public BinaryTreeNode(Object data){
this.data = data;
this.left=null;
this.right =null;
}
public BinaryTreeNode root;
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;
}
/*
* 二叉树 b 插入对象 o 父节点 pnode
* 若b为空树,插入节点作为根
* o 等于根节点 直接返回
* o 小于根节点 pnode = 左子树
* else pnode = 右子树
*
*/
public BinaryTreeNode insert(Object o) {
BinaryTreeNode current = root;
if(current == null){
return new BinaryTreeNode(o);
}
if (o.compareTo((Object) current.data)<0){
if(current.left !=null){
current = current.left;
}else{
current.left = new BinaryTreeNode(o);
return current;
}
}else if(o.compareTo((Object) current.data)==0){
return current;
}else{
if(current.right !=null){
current = current.right;
}else{
current.right = new BinaryTreeNode(o);
return current;
}
}
return current;
}
}