顺序存储的二叉树

  顺序存储的二叉树通常只考虑完全二叉树

  存储的数组中,第n个元素的左子结点是2n+1,右子节点是2n+2,父节点是(n-1)/2。
  顺序存储的二叉树的遍历(把数组看成完全二叉树)

package demo6;

public class ArrayBinaryTree {

	int[] data;
	
	public ArrayBinaryTree(int[] data) {
		this.data=data;
	}
	
	public void frontShow() {
		frontShow(0);
	}
	
	//前序遍历
	public void frontShow(int index) {
		if(data==null||data.length==0) {
			return;
		}
		//先遍历当前节点的内容
		System.out.println(data[index]);
		//2*index+1:处理左子树
		if(2*index+1<data.length) {
			frontShow(2*index+1);
		}
		//2*index+2:处理右子树
		if(2*index+2<data.length) {
			frontShow(2*index+2);
		}
	}
	
}
package demo6;

public class TestArrayBinaryTree {

	public static void main(String[] args) {
		int[] data = new int[] {1,2,3,4,5,6,7};
		ArrayBinaryTree tree = new ArrayBinaryTree(data);
		//前序遍历
		tree.frontShow();
	}

}
posted @ 2020-06-03 11:22  lihao_Q  阅读(197)  评论(0编辑  收藏  举报