package study.coding.basic; /** * @Author shane * @Time 2017/2/26 19:30 * @Email stevenchenguang@gmail.com * @Desc Own BinaryTreeNode */ public class BinaryTreeNode { private Object data; private BinaryTreeNode left; private BinaryTreeNode right; public BinaryTreeNode insert(Object o) { if (null == data) { data = o; return this; } if (bigger(data, o)) { if (null == left) { left = new BinaryTreeNode(); left.data = o; } else { left.insert(o); } } else if (smaller(data, o)) { if (null == right) { right = new BinaryTreeNode(); right.data = o; } else { right.insert(o); } } else { throw new RuntimeException("The value has exists"); } return this; } 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; } private boolean bigger(Object data1, Object data2) { return data1.toString().compareTo(data2.toString()) > 0; } private boolean smaller(Object data1, Object data2) { return data1.toString().compareTo(data2.toString()) < 0; } private ArrayList list = new ArrayList(); /** * 对二叉树进行遍历 结果存储到list中 */ private void sort(BinaryTreeNode node) { list.add(node.data); if(null != node.left){ sort(node.left); } if(null != node.right){ sort(node.right); } } @Override public String toString() { sort(this); return list.toString(); } }