從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可
以轉換成樹,樹也可以轉換成陣列。
順序二叉樹通常只考慮完全二叉樹
第n個元素的左子節點為 2 * n + 1
第n個元素的右子節點為 2 * n + 2
第n個元素的父節點為 (n-1) / 2
n : 表示二叉樹中的第幾個元素(按0開始編號如圖所示) 相當於陣列的下標
他的實現
package arraytree;
/** * 順序儲存二叉樹
*/public
class
arraybinarytree
/** * 前序遍歷
*/public
void
previousorder()
/** * 以index為根節點前序遍歷
* 直接利用規律遍歷就行了
*//** * 前序遍歷陣列
* @param index
*/private
void
previousorder
(int index)
system.out.
println
(arr[index]);
if(index *2+
1< arr.length)
previousorder
(index *2+
1);if
(index *2+
2< arr.length)
}}
測試
package arraytree;
public
class
demo
; arraybinarytree tree =
newarraybinarytree
(arr)
; tree.
previousorder()
;}}
結果輸出12453
樹2 二叉樹(順序)
順序儲存結構最好用於完全二叉樹 普通樹也可以,把空節點資料設為 即可 鏈式儲存結構任何二叉樹都可以 性質 第i層最多有2i 1個節點,前i層最多有2i 1個節點 零度頂點 二度頂點 1 n個頂點的完全二叉樹深度為 log2n 1 對一棵完全二叉樹編號為i的節點,i 若i 1,則無雙親,否則雙親是 i...
順序儲存二叉樹
從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列,看下面的示意圖。順序二叉樹通常只考慮完全二叉樹 第n個元素的左子節點為 2 n 1 第n個元素的右子節點為 2 n 2 第 n 個元素的父節點為 n 1 2 n 表示二叉樹中的第幾個元素 按 0 開始編號...
順序儲存二叉樹
從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列。陣列轉換成樹即是將陣列中的各個元素按照二叉樹的層次儲存起來的過程。原陣列 1,2,3,4,5,6,7 轉換為順序二叉樹如下圖所示 順序儲存二叉樹的特點 通常只考慮完全二叉樹 第n個元素的左子節點為2 n ...