Java面向对象_常用类库api——二叉树数据结构实现

二叉树是每个节点最多有两个子树的有序树。通常子树被称为"左子树"和"右子树".

二叉树算法的排序规则:

1.选择第一个元素作为根节点

2.之后如果元素大于根节点放在右子树,如果元素小于根节点,则放在左子树

3.最后按照中序遍历的方式进行输出,则可以得到排序的结果(左->根->右)

   8、3、10、1、6、14、4、7、13

 1 public class BinaryTree {
 2     private Node root;
 3     public void addNode(int data){
 4         if(this.root==null){
 5             root=new Node(data);
 6         }else{
 7             root.add(data);
 8         }
 9     }
10     public void printNode(){
11         if(root!=null){
12             root.print();
13         }
14     }
15     
16     
17     
18      private class Node{
19          private int data;
20          private Node left;
21          private Node right;
22         public Node(int data) {
23             super();
24             this.data = data;
25         }
26          public void add(int data){
27              if(this.data>data){
28                  if(left==null){
29                      left=new Node(data);
30                  }else{
31                     left.add(data);
32                  }
33                 
34              }else if(this.data<=data){
35                  if(this.right==null){
36                      this.right=new Node(data);
37                  }else{
38                      this.right.add(data);
39                  }
40              }
41          }
42          //中序遍历,规则:左 根 右
43          public void print(){
44              if(this.left!=null){
45                  this.left.print();
46              }
47              System.out.print(this.data+"->");
48              if(this.right!=null){
49                  this.right.print();
50              }
51          }
52      }
53 }

 

posted on 2015-12-30 18:10  深海溺心  阅读(651)  评论(0编辑  收藏  举报

导航