package com.gxmedu.binary_tree;
/**
* @author 郭学明
* @version 1.0
*/
public class ArrayBinaryTree {
public static void main(String[] args) {
int arr[] = {1,2,3,4,5,6,7};
// 前序遍历 1 2 4 5 3 6 7
// 中序遍历 4 2 5 1 6 3 7
// 后序遍历 4 5 2 6 7 3 1
ArrayBinaryTree arrayBinaryTree = new ArrayBinaryTree(arr);
arrayBinaryTree.prefixOrder();
arrayBinaryTree.infixOrder();
arrayBinaryTree.suffixOrder();
}
private int[] arr;
public ArrayBinaryTree(int[] arr){
this.arr =arr;
}
public void prefixOrder(int index){
if(arr == null || arr.length == 0){
System.out.println("数组为空或长度为零无法遍历!");
return;
}
System.out.print(arr[index] + "\t");
if(2 * index + 1 < arr.length){
prefixOrder(2 * index + 1);
}
if(2 * index + 2 < arr.length){
prefixOrder(2 * index + 2);
}
}
public void prefixOrder(){
prefixOrder(0);
System.out.println();
}
public void infixOrder(int index){
if(arr == null || arr.length == 0){
System.out.println("数组有问题");
return;
}
if(2 * index + 1 < arr.length ){
infixOrder(2 * index + 1);
}
System.out.print(arr[index] + "\t");
if(2 * index + 2 < arr.length){
infixOrder(2* index + 2);
}
}
public void infixOrder(){
infixOrder(0);
System.out.println();
}
public void suffixOrder(int index){
if(arr == null || arr.length == 0){
System.out.println("数组有问题");
return;
}
if(2 * index + 1 < arr.length){
suffixOrder(2 * index + 1);
}
if(2 * index + 2 < arr.length) {
suffixOrder(2 * index + 2);
}
System.out.print(arr[index] + "\t");
}
public void suffixOrder(){
suffixOrder(0);
System.out.println();
}
}
java 顺序存储二叉树
最新推荐文章于 2024-05-31 10:46:10 发布