二叉樹的順序儲存結構

2021-10-18 21:52:54 字數 1854 閱讀 8875

完全二叉樹的順序儲存結構的性質:

完全二叉樹的順序儲存結構

採用一維陣列,按層序順序依次儲存二叉樹的每乙個結

點。如下圖所示:

一般二叉樹的順序儲存結構

通過虛設部分結點,使其變成相應的完全二叉樹。

如已知某結點的層序編號i,則可求得該結點的雙親結點、左孩子結點和右孩子結點,然後檢測其值是否為虛設的特殊結點$。

**實現順序儲存結構的二叉樹遍歷

public

class

arrbinarytreedemo

;//下標0不儲存資訊

//建立乙個 arrbinarytree

arrbinarytree arrbinarytree =

newarrbinarytree

(arr)

; arrbinarytree.

preorder()

;// 1,2,4,5,3,6,7

arrbinarytree.

postorder(1

);}}

//編寫乙個arraybinarytree, 實現順序儲存二叉樹遍歷

class

arrbinarytree

//過載preorder

public

void

preorder()

//編寫乙個方法,完成順序儲存二叉樹的前序遍歷

/** *

* @param index 陣列的下標

*/public

void

preorder

(int index)

//輸出當前這個元素

system.out.

println

(arr[index]);

//向左遞迴遍歷if(

(index *2)

< arr.length)

//向右遞迴遍歷if(

(index *2+

1)< arr.length)

}//中序遍歷

public

void

infixorder

(int index)

//向左遞迴遍歷if(

(index *2)

< arr.length)

//輸出當前這個元素

system.out.

println

(arr[index]);

//向右遞迴遍歷if(

(index *2+

1)< arr.length)

}//後序遍歷

public

void

postorder

(int index)

//向左遞迴遍歷if(

(index *2)

< arr.length)

//向右遞迴遍歷if(

(index *2+

1)< arr.length)

//輸出當前這個元素

system.out.

println

(arr[index]);

}}

二叉樹的順序儲存結構

此結構是將二叉樹的所有結點,按照一定的次序,儲存到一片連續的儲存單元中。因此,必須將結點排成乙個適當的線性序列,使得結點在這個序列中的相應位置能反映出結點之間的邏輯關係。這種結構特別適用於近似滿二叉樹。在一棵具有n個結點的近似滿二叉樹中,我們從樹根起,自上層到下層,逐層從左到右給所有結點編號,就能得...

二叉樹的順序儲存結構

二叉樹的順序儲存結構 include includeusing namespace std define virnode 0 定義虛擬節點 define max tree size 100 定義儲存空間最大量 typedef char elemtype 定義節點型別 typedef elemtype...

二叉樹的順序儲存結構

新增鏈結描述 上面文章中講述二叉樹的順序儲存結構的 這裡給執行了一下,以及遇到的一些問題,我都在 裡標註了.include includeusing namespace std const int m 100 class bitree int create bt 手動輸入二叉樹各節點的資訊 void...