二叉樹-順序儲存二叉樹
阿新 • • 發佈:2020-12-16
順序儲存二叉樹就是可以用陣列表示樹;用陣列的方法時,節點存在陣列中,而不是使用引用,節點在陣列中的位置對應它在樹中的位置,下表為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); } } }