标签:中序遍历 rate 输出 完成 col xor err 递归遍历 span
package com.dai.tree; public class ArrBinaryTreeDemo { public static void main(String[] args) { // TODO Auto-generated method stub int[] arr = {1,2,3,4,5,6,7}; //创建一个arrbinarytree对象 ArrBinarTree arrBinarTree = new ArrBinarTree(arr); System.err.println("前序遍历:"); arrBinarTree.preOrder(); System.out.println("中序遍历:"); arrBinarTree.infixOrder(); System.out.println("后续遍历:"); arrBinarTree.postOrder(); } } //写一个arrbianrytree,实现顺序存储二叉树的遍历 class ArrBinarTree { private int[] arr; //存储数据节点的数组 public ArrBinarTree(int[] arr) { this.arr = arr; } //重载preOrder public void preOrder() { this.preOrder(0); } public void infixOrder() { this.infixOrder(0); } public void postOrder() { this.postOrder(0); } //编写一个方法,完成顺序存储二叉树的一个前序遍历 //index表示数组的下标 public void preOrder(int index) { //如果数组未空,或者arr.length=0 if(arr ==null || arr.length == 0) { System.out.println("数组为空,不能按照二叉树的前序遍历"); } //输出当前元素 System.out.println(arr[index]); //向前递归遍历 if((index*2+1) < arr.length) { preOrder(2*index + 1); } //向右递归遍历 if(index*2+2 < arr.length) { preOrder(2*index+2); } } //编写一个方法,完成顺序存储二叉树的一个中序遍历 public void infixOrder(int index) { if(arr == null || arr.length == 0) { System.out.println("数组为空,不能遍历"); } if((index*2+1) < arr.length) { infixOrder(2*index+1); } System.out.println(arr[index]); if((index*2+2) < arr.length) { infixOrder(index*2 +2); } } //编写一个方法,完成顺序存储二叉树的一个中序遍历 public void postOrder(int index) { if(arr == null || arr.length == 0) { System.out.println("数组为空,不能遍历"); } if((index*2+1)<arr.length) { postOrder(index*2+1); } if((index*2+2) < arr.length) { postOrder(index*2 + 2); } System.out.println(arr[index]); } }
标签:中序遍历 rate 输出 完成 col xor err 递归遍历 span
原文地址:https://www.cnblogs.com/shengtudai/p/14454506.html