java 二叉树排序

复制代码
1 class BinaryTree{
2     class Node{
3         private Comparable data;
4         private Node left;
5         private Node right;
6         public void addNode(Node newNode){
7             if(newNode.data.compareTo(this.data)<0){
8                 if(this.left==null){
9                     this.left=newNode;
10                 }else{
11                     this.left.addNode(newNode);
12                 }
13             }
14             if(newNode.data.compareTo(this.data)>=0){
15                 if(this.right==null){
16                     this.right=newNode;
17                 }else{
18                     this.right.addNode(newNode);
19                 }
20             }
21         }
22         public void printNode(){
23             if(this.left!=null){
24                 this.left.printNode();
25             }
26             System.out.print(this.data+"\t");
27             if(this.right!=null){
28                 this.right.printNode();
29             }
30         }
31     };
32     private Node root;
33     public void add(Comparable data){
34         Node newNode=new Node();
35         newNode.data=data;
36         if(root==null){
37             root=newNode;
38         }else{
39             root.addNode(newNode);
40         }
41     }
42     public void print(){
43         this.root.printNode();
44     }
45 };
46 public class BigIntDemo {
47     public static void main(String[] args) {
48         BinaryTree bt=new BinaryTree();
49         bt.add(8);
50         bt.add(3);
51         bt.add(3);
52         bt.add(10);
53         bt.add(9);
54         bt.add(1);
55         bt.add(5);
56         bt.add(5);
57         System.out.println("排序后的结果:");
58         bt.print();
59
60     }
61
62 }
复制代码
posted @ 2017-07-04 11:13  walle1314  阅读(985)  评论(0编辑  收藏  举报