27、數組存儲完全二叉樹

  • 思路: 簡單介紹了用數組存儲完全二叉樹的問題,重點就是找到父節點和子節點的關係(Node = 2leftNode+1,Node = 2rightNode+1 ) 下面的代碼就是二叉樹用數組存儲後,怎麼對數組進行前中後遍歷的問題。

  • 代碼:

package tree;

public class ArrBinaryTreeDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int[] arr = {1,2,3,4,5,6,7,8,9};
		ArrayBinaryTree binaryTree = new ArrayBinaryTree(arr);
//		binaryTree.preOrder(0);
//		binaryTree.infixOrder(0);
		binaryTree.lastOrder(0);
		
	}

}

class ArrayBinaryTree{
	int[] arr;

	public ArrayBinaryTree(int[] arr) {
		super();
		this.arr = arr;
	}
	
	//前序遍歷
	public void preOrder(int order) {
		if(arr == null || arr.length == 0 || order > arr.length-1) {
			return;
		}
		System.out.println(arr[order]);
		preOrder(2*order+1);
		preOrder(2*order+2);
	}
	//中序遍歷
	public void infixOrder(int order) {
		if(arr == null || arr.length == 0 || order > arr.length-1) {
			return;
		}
		infixOrder(2*order+1);
		System.out.println(arr[order]);	
		infixOrder(2*order+2);
	}
	//後序遍歷
	public void lastOrder(int order) {
		if(arr == null || arr.length == 0 || order > arr.length-1) {
			return;
		}
		
		lastOrder(2*order+1);
		lastOrder(2*order+2);
		System.out.println(arr[order]);
	}
	
	
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章