/**
* 数据结构与算法果然还是要跟进度来,
* 不要想当然,今天先写数组的前序后序中序遍历
* 也就是为了后面堆的实现做准备
*堆排序
*/
public class BinaryTree {
int array[] = {1 , 2, 9 , 3 , 6 ,10 , 13 , 4 , 5 ,7 ,8 ,11,12,14,15} ;
public static void main(String[] args) {
BinaryTree bt = new BinaryTree();
System.out.println("前序遍历:");
bt.preOrder(1);
System.out.println() ;
System.out.println("中序遍历") ;
bt.inOrder(1) ;
System.out.println();
System.out.println("后续遍历");
bt.postOrder(1);
}
public void preOrder(int i) {
if(i <= array.length) {
System.out.print(array[i - 1] + " ");
preOrder(i * 2);
preOrder(i * 2 + 1);
}
}
public void inOrder(int i) {
if(i <= array.length) {
inOrder(i * 2) ;
System.out.print(array[i - 1] + " ");
inOrder(i * 2 + 1) ;
}
}
public void postOrder(int i ) {
if(i <= array.length) {
postOrder(i * 2) ;
postOrder(i * 2 + 1) ;
System.out.print(array[i - 1] + " ") ;
}
}
}