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 }