二叉树的顺序存储
二叉树的顺序存储,只讨论完全二叉树的顺序存储。
上图可是:
第n个节点的左孩子为 2n+1 右孩子为2n+2
第n个节点的父节点为 ( n-1)/2

任何一个数组可以当做二叉树来看待:
下面是顺序二叉树以及它的先序遍历

public class ArrayBinaryTree {
	private int[] data;
	public ArrayBinaryTree(int[] data) {
		this.data = data;
	}
	//前序遍历
	public void firstRead( int index) {
		//先输出节点的信息
		System.out.println(data[index]);
		//递归左孩子
		if((2*index+1)<data.length) {
			firstRead(2*index+1);
		}
		//递归右孩子
		if((2*index+2)<data.length) {
			firstRead(2*index+2);
		}
	}
}

相关文章: