package BasicData; //insert 方法有问题 public class MyTreeNode<T extends Comparable<T>> { private T data; private MyTreeNode<T> left = null; private MyTreeNode<T> right = null; private MyTreeNode<T> root = null; private MyTreeNode<T> cureeTreeNode = null; public T getData() { return data; } public void setData(T data) { this.data = data; } public MyTreeNode<T> getLeft() { return left; } public void setLeft(MyTreeNode<T> left) { this.left = left; } public MyTreeNode<T> getRight() { return right; } public void setRight(MyTreeNode<T> right) { this.right = right; } @Override public String toString() { StringBuilder string = new StringBuilder(); string.append("["); if (cureeTreeNode == null) { string.append("]"); return string.toString(); } else { string.append(cureeTreeNode.toString()).append("]"); return string.toString(); } } public MyTreeNode<T> insert(T o){ MyTreeNode<T> newNode = new MyTreeNode<T>(); MyTreeNode<T> current = null; newNode.setData(o); if (root == null) { root = newNode; cureeTreeNode = newNode;//���� return newNode; } else { Digui(o, root); current = cureeTreeNode; if (current.getData().compareTo(o) == -1) { current.right = newNode; } else { current.left = newNode; } cureeTreeNode = newNode; //���� return newNode; } } public void Digui(T o,MyTreeNode<T> parentnode){ cureeTreeNode = parentnode; if (parentnode.left!= null) { if (parentnode.getData().compareTo(o) == -1) { parentnode = parentnode.right; Digui(o, parentnode); } else return; } if (parentnode.right != null) { if (parentnode.getData().compareTo(o) == 1) { parentnode = parentnode.left; Digui(o, parentnode); } else return; } } public void preOrder(MyTreeNode<T> root) { visit(root); if(root.getLeft() != null) { preOrder(root.getLeft()); } if(root.getRight() != null) { preOrder(root.getRight()); } } public void visit(MyTreeNode<T> btree) { System.out.print(btree.getData() + "\t"); } }