1. 程式人生 > 其它 >二叉樹-順序儲存二叉樹

二叉樹-順序儲存二叉樹

技術標籤:資料結構和演算法java

順序儲存二叉樹就是可以用陣列表示樹;用陣列的方法時,節點存在陣列中,而不是使用引用,節點在陣列中的位置對應它在樹中的位置,下表為0的節點是根,為1的是左子樹,2是右子樹,依次類推
節點在陣列中的索引值為index(index從0開始,對應代表在二叉樹的第幾個元素)
1.適用於滿樹(完全二叉樹)
2.節點的左子節點2*index+1
3.節點的右子節點2*index+2
4.父節點(index-)/2

圖示

Java示例

class ArrayBinaryTree {
    private int[] array;

    public ArrayBinaryTree(int[] array) {
        this.array = array;
    }

    //前序遍歷
    public void preOrder(int index) {
        if (array == null || array.length == 0) {
            System.out.println("陣列為空,無法遍歷");
            return;
        }
        //輸出當前節點
        System.out.println(array[index]);
        //遍歷左子樹
        if (2 * index + 1 < array.length) {
            preOrder(2 * index + 1);
        }
        //遍歷右子樹
        if (2 * index + 2 < array.length) {
            preOrder(2 * index + 2);
        }
    }
}