package cn.fyl.first; public class BinaryTreeNode { private Object data; //保存数据 private BinaryTreeNode left; //左子树 private BinaryTreeNode right; //右子树 private BinaryTreeNode root; //根节点 public BinaryTreeNode getRoot() { return root; } public void setRoot(BinaryTreeNode root) { this.root = root; } 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; } //插入功能,插入的值按比父类结点的值大,插入右子树;小,插入左子树 public BinaryTreeNode insert(Object o,BinaryTreeNode t){ if(t == null){ BinaryTreeNode temp = new BinaryTreeNode(); //新建插入值的结点 temp.setData(o); return temp; } boolean temp = (int)o > (int)t.getData(); //暂存插入的值跟结点的值比较大小结果 if(temp){ //ture时(插入的值大于结点的值大),所以插到右子树 System.err.println(temp); t.right =insert(o, t.right); } else{ System.out.println(temp); t.left = insert(o, t.left); } return t; } public static void main(String[] args) { BinaryTreeNode root = new BinaryTreeNode(); BinaryTreeNode left1 = new BinaryTreeNode(); BinaryTreeNode right1 = new BinaryTreeNode(); BinaryTreeNode left2 = new BinaryTreeNode(); BinaryTreeNode left3 = new BinaryTreeNode(); root.setData(5); root.setLeft(left1); left1.setData(2); root.setRight(right1); right1.setData(7); left1.setLeft(left2); left2.setData(1); right1.setLeft(left3); left3.setData(6); BinaryTreeNode temp = root.insert(4, left1); System.out.println(left1.getRight().getData()); } }