1. 程式人生 > >郝斌資料結構入門--P63-樹的儲存

郝斌資料結構入門--P63-樹的儲存

郝斌資料結構入門--P63-樹的儲存

 

完全二叉樹:

先把一棵樹轉換為滿二叉樹,再把最底層最右邊刪掉,意味著下圖黃色框可以刪掉,不儲存。剩下的一棵樹就是完全二叉樹。

 

為什麼一個二叉樹以陣列的方式儲存時,必須要求這個數是完全二叉樹?

上圖紅色是真正的點(有效點)。如果只存放有效的點,無法確定這棵樹是怎樣構造出來的。別人不知道以前的樹是怎樣子的,所以不能只保留有效的點。

 

二叉樹的儲存

連續儲存[完全二叉樹]:

優點:查詢某個節點的父節點和子節點速度很快(也包括判斷有沒有子節點)

缺點:耗用記憶體空間過大

鏈式儲存

 

一般樹的儲存

雙親表示法:求父節點方便

孩子表示法:求子節點方便

雙親孩子表示法:求父節點和子節點都很方便

二叉樹表示法:把一個普通樹轉化成二叉樹來儲存,

                            具體轉換方法:設法保證任意一個節點的

                                                                左指標域指向它的第一個孩子

                                                                右指標域指向它的兄弟

                                          只要能滿足此條件,就可以把一個普通樹轉化為二叉樹

                                          一個普通樹轉化成的二叉樹一定沒有右子樹

 

森林的儲存