【分析】
二叉树的结构:根节点、左子树、右子树。其中左子树的值必须小于根节点,右子树的值必须大于根节点。构造这种树结构,就是创建一个类,并提供一个方法,当给定一个值时,它能够自动创建节点并自动挂到二叉树的合适位置。
二叉树的遍历:分为先序遍历、中序遍历和后序遍历。先序遍历:根、左、右。
中需遍历:左、根、右。
后续遍历:左、右、根。
二叉树的应用:加密解密、文件压缩、快速查询、快速遍历等。
1、构造二叉树的节点对象,并提供插入方法。
1 private int data; //存放节点数据 2 private BinaryTree left; //左子树 3 private BinaryTree right; //右子树 4 5 /** 6 * 构造方法,创建新节点 7 */ 8 public BinaryTree(int data) { 9 this.data = data;10 this.left = null;11 this.right = null;12 }13 14 /**15 * 插入新节点16 */17 public void insert(BinaryTree root, int data){18 if(root !=null){19 if(data
2.插入节点构造出二叉树,并通过先序遍历、中序遍历、后序遍历对二叉树进行遍历
1 public static void main(String[] args) { 2 BinaryTree root = new BinaryTree(6); //创建根节点 3 int[] a = {2,1,4,5,3,8,6,7,9}; 4 for (int i = 0; i < a.length; i++) { //插入节点 5 root.insert(root, a[i]); 6 } 7 8 preTraversal( root); 9 midTraversal( root);10 sufTraversal( root);11 }
1 //先序遍历 2 public static void preTraversal(BinaryTree root){ 3 if (root !=null) { 4 System.out.print(root.getData() +"-"); 5 preTraversal(root.getLeft()); 6 preTraversal(root.getRight()); 7 } 8 9 }10 11 //中序遍历12 public static void midTraversal(BinaryTree root){13 if(root !=null){14 midTraversal(root.getLeft());15 System.out.print(root.getData()+"-");16 midTraversal(root.getRight());17 }18 }19 20 //后序遍历21 public static void sufTraversal(BinaryTree root){22 if(root !=null){23 sufTraversal(root.getLeft());24 sufTraversal(root.getRight());25 System.out.print(root.getData()+"-");26 }27 }