package com.java.xiaoqin.impl;
/**
* Created by xiaoqin on 17-2-26.
*/
public class BinaryTreeNode<T> {
private T data;
private BinaryTreeNode leftChild;
private BinaryTreeNode rightChild;
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public BinaryTreeNode getLeftChild() {
return leftChild;
}
public void setLeftChild(BinaryTreeNode leftChild) {
this.leftChild = leftChild;
}
public BinaryTreeNode getRightChild() {
return rightChild;
}
public void setRightChild(BinaryTreeNode rightChild) {
this.rightChild = rightChild;
}
public BinaryTreeNode insert(T o) {
if (data == null) {
data = o;
return this;
} else {
return insert(this, o);
}
}
private BinaryTreeNode insert(BinaryTreeNode node, T o) {
if (o instanceof Integer) {
if ((Integer) node.data > (Integer) o) {
if (null == node.leftChild) {
node.leftChild = new BinaryTreeNode();
node.leftChild.data = o;
return node.leftChild;
} else {
return insert(node.leftChild, o);
}
} else if ((Integer) node.data < (Integer) o) {
if (null == node.rightChild) {
node.rightChild = new BinaryTreeNode();
node.rightChild.data = o;
return node.rightChild;
} else {
return insert(node.rightChild, o);
}
} else {
return node;
}
} else {
return null;
}
}
@Override
public String toString() {
StringBuilder sbToString = new StringBuilder();
sbToString.append("data:").append(data);
if (null != leftChild) {
sbToString.append("\t").append(data).append("left:").append(leftChild.toString());
}
if (null != rightChild) {
sbToString.append("\t").append(data).append("right:").append(rightChild.toString());
}
return sbToString.toString();
}
}