順序儲存樹

2021-10-25 11:46:48 字數 1354 閱讀 4769

從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列

順序二叉樹通常只考慮完全二叉樹

第 n 個元素的左子節點為 2*n+1

第 n 個元素的右子節點為 2*n+2

第 n 個元素的父節點為 (n-1)/2

n: 表示二叉樹中的第幾個元素(按 0 開始編號如圖所示)

具體實現如下:

//順序儲存二叉樹遍歷

class

arrbinarytree

//過載前序遍歷

public

void

preorder()

//過載中序遍歷

public

void

indexfindorder()

//過載後序遍歷

public

void

postorder()

前序遍歷

public

void

preorder

(int index)

//輸出當前結點

system.out.

print

(arr[index]

+" ");

//向左遞迴if(

(index *2+

1)< arr.length)

//向右遞迴if(

(index *2+

2)< arr.length)

}//中序遍歷

public

void

indexfindorder

(int index)

//向左遞迴if(

(index*2+

1)//輸出當前結點

system.out.

print

(arr[index]

+" ");

//向右遞迴if(

(index*2+

2)}//後序遍歷

public

void

postorder

(int index)

//向左遞迴if(

(2*index+1)

//向右遞迴if(

(2*index+2)

//輸出當前

順序儲存二叉樹

從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列,看下面的示意圖。順序二叉樹通常只考慮完全二叉樹 第n個元素的左子節點為 2 n 1 第n個元素的右子節點為 2 n 2 第 n 個元素的父節點為 n 1 2 n 表示二叉樹中的第幾個元素 按 0 開始編號...

資料結構 樹的順序儲存

include include using namespace std define end 1 define max size 11 二叉查詢樹的順序儲存結構 判斷幾個不同的序列構成的二叉查詢樹是否相同 所以輸入的排序都是前n個數字的排序 typedef struct nodenode 注意,如果...

順序儲存二叉樹

從資料儲存來看,陣列儲存方式和樹的儲存方式可以相互轉換,即陣列可以轉換成樹,樹也可以轉換成陣列。陣列轉換成樹即是將陣列中的各個元素按照二叉樹的層次儲存起來的過程。原陣列 1,2,3,4,5,6,7 轉換為順序二叉樹如下圖所示 順序儲存二叉樹的特點 通常只考慮完全二叉樹 第n個元素的左子節點為2 n ...