Comparableインタフェースに基づくツリー操作

9012 ワード

 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.println(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 ComparableDemo{

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(5);

53         bt.add(7);

54         bt.add(1);

55         bt.add(0);

56         bt.add(6);

57         bt.add(6);

58         bt.add(9);

59         System.out.println(" :");

60         bt.print();

61     }

62 }