標簽:中序遍曆 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