package tree; public class BinaryTree { private TreeNode parent; public BinaryTree(){ parent = new TreeNode(null,null,null); } public void insert(Object o ){ TreeNode node = new TreeNode(null,o,null); if(parent.item==null){ parent= node; return; } insertNode(parent,node); } private void insertNode(TreeNode parentNode, TreeNode newNode) { if(parentNode.compareTo(newNode)<= 0){ if(parentNode.right==null){ parentNode.right = newNode; }else{ insertNode(parentNode.right,newNode); } }else{ if(parentNode.left==null){ parentNode.left=newNode; }else{ insertNode(parentNode.left, newNode); } } } public void printTree(){ printNode(this.parent); } private void printNode(TreeNode node) { if (node == null) { System.out.println("node :" + node.item); printNode(node.left); printNode(node.right); } } class TreeNode implements Comparable<TreeNode>{ Object item; TreeNode left; TreeNode right; TreeNode(TreeNode left,Object item,TreeNode right){ this.item=item; this.left =left; this.right=right; } @Override public int compareTo(TreeNode o) { Integer parentItem = (Integer) this.item; Integer oItem = (Integer) o.item; return parentItem.compareTo(oItem); } } }