程序:
class BinaryTree{
class Node{
private Comparable data;
private Node left;
private Node right;
public Node(Comparable data){ //通过构造方法在外部类直接实例化
this.data = data ;
}
public void addNode(Node newNode){
if(newNode.data.compareTo(this.data)<0){
if(this.left == null){
this.left = newNode ;
}else{
this.left.addNode(newNode);
}
}else{
if(this.right == null){
this.right = newNode;
}else{
this.right.addNode(newNode);
}
}
}
public void printNode(){
if(this.left!=null){
this.left.printNode();
}
System.out.print(this.data+"\t");
if(this.right!=null){
this.right.printNode();
}
}
}
private Node root;
public void add(Comparable data){
Node newNode = new Node(data);
if(root == null){
root = newNode;
}else{
root.addNode(newNode);
}
}
public void print(){
this.root.printNode();
}
}
public class BinaryTreeDemo{
public static void main(String[] args) {
BinaryTree bt = new BinaryTree();
bt.add(7);
bt.add(21);
bt.add(18);
bt.add(16);
bt.add(9);
bt.add(20);
bt.add(2);
bt.add(0);
bt.add(11);
bt.add(13);
bt.print();
}
}
结果:
0 2 7 9 11 13 16 18 20 21