郝斌資料結構入門--P63-樹的儲存
阿新 • • 發佈:2018-11-18
郝斌資料結構入門--P63-樹的儲存
完全二叉樹:
先把一棵樹轉換為滿二叉樹,再把最底層最右邊刪掉,意味著下圖黃色框可以刪掉,不儲存。剩下的一棵樹就是完全二叉樹。
為什麼一個二叉樹以陣列的方式儲存時,必須要求這個數是完全二叉樹?
上圖紅色是真正的點(有效點)。如果只存放有效的點,無法確定這棵樹是怎樣構造出來的。別人不知道以前的樹是怎樣子的,所以不能只保留有效的點。
二叉樹的儲存
連續儲存[完全二叉樹]:
優點:查詢某個節點的父節點和子節點速度很快(也包括判斷有沒有子節點)
缺點:耗用記憶體空間過大
鏈式儲存
一般樹的儲存
雙親表示法:求父節點方便
孩子表示法:求子節點方便
雙親孩子表示法:求父節點和子節點都很方便
二叉樹表示法:把一個普通樹轉化成二叉樹來儲存,
具體轉換方法:設法保證任意一個節點的
左指標域指向它的第一個孩子
右指標域指向它的兄弟
只要能滿足此條件,就可以把一個普通樹轉化為二叉樹
一個普通樹轉化成的二叉樹一定沒有右子樹
森林的儲存