package week1.collection; public class BinaryTreeNode { private Comparable data; private BinaryTreeNode left=null; private BinaryTreeNode right=null; public BinaryTreeNode(Comparable o){ this.data=o; } /* * 非递归实现 */ /* public BinaryTreeNode insert(Comparable o){ BinaryTreeNode currentNode=this; while(null != currentNode){ Comparable data=(Comparable) currentNode.getData(); int result=data.compareTo((Integer) o); if(result == 0){ return currentNode; }else if(result > 0){ if(null == currentNode.getLeft()){ BinaryTreeNode insertNode=new BinaryTreeNode(o); currentNode.setLeft(insertNode); return insertNode; } currentNode=currentNode.left; }else{ if(null ==currentNode.right){ BinaryTreeNode insertNode=new BinaryTreeNode(o); currentNode.setRight(insertNode); return insertNode; } currentNode=currentNode.right; } } return new BinaryTreeNode(o); }*/ /* * 递归实现 */ public BinaryTreeNode insert(Comparable o){ Comparable data=(Comparable) this.getData(); int result=data.compareTo(o); if(result == 0){ return this; }else if(result > 0){ if(this.getLeft()==null){ BinaryTreeNode node=new BinaryTreeNode(o); this.setLeft(node); return node; } return this.getLeft().insert(o); }else{ if(this.getRight()==null){ BinaryTreeNode node=new BinaryTreeNode(o); this.setRight(node); return node; } return this.getRight().insert(o); } } public Object getData() { return data; } public void setData(Comparable 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; } }