package com.coding.basic; /** * @author hugaoqing * created on 2017-3-11 */ public class BinaryTreeNode { private Comparable data; private BinaryTreeNode left; private BinaryTreeNode right; public BinaryTreeNode(Comparable data2) { // TODO Auto-generated constructor stub } public BinaryTreeNode() { // TODO Auto-generated constructor stub } /*public BinaryTreeNode(Comparable data) { super(); this.data = data; }*/ public Comparable 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; } public BinaryTreeNode insert(Comparable data){ /*if(this.data==null){ return new BinaryTreeNode(o); } BinaryTreeNode curNode = this; while(curNode != null){ if(curNode.data.compareTo(o) == 0){ return curNode; } else if(o.compareTo(curNode.data) < 0){ BinaryTreeNode node = curNode; curNode = curNode.left; if(curNode == null){ curNode = new BinaryTreeNode(o); node.left = curNode; return curNode; } }else if(o.compareTo(curNode.data) > 0){ BinaryTreeNode node = curNode; curNode = curNode.right; if(curNode == null){ curNode = new BinaryTreeNode(o); node.right = curNode; return curNode; } } } return curNode;*/ BinaryTreeNode curNode = this; BinaryTreeNode insertNode = new BinaryTreeNode(); insertNode.setData(data); while(curNode != null){ if(null == curNode.data){ curNode.setData(data); break; }else{ Comparable dataOfNode = curNode.getData(); if(dataOfNode.compareTo(data) == 0){ break; }else if(dataOfNode.compareTo(data) < 0){ BinaryTreeNode leftNode = curNode.left; if(null == leftNode){ curNode.setLeft(insertNode); break; } curNode = leftNode; }else{ BinaryTreeNode rightNode = curNode.right; if(null == rightNode){ curNode.setRight(insertNode); break; } curNode = rightNode; } } } return insertNode; } }