樹的儲存 森林的儲存

2022-06-06 02:51:10 字數 1370 閱讀 4611

1.  連續儲存(順序儲存)【完全二叉樹】,以陣列實現

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

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

2.  鏈式儲存:

優點:耗記憶體小

由於計算機的記憶體是線性的,而樹是非線性的。若在計算機裡只存樹的有效節點,便不能查詢某個節點的子節點和父節點(或者說整個樹的邏輯儲存無法知曉),所以必須要先轉化成完全二叉樹,把垃圾節點補上。

綠色的是普通樹,藍色的是轉為滿二叉樹,黃色的是去掉了底層連續的葉子節點,即成了完全二叉樹

雙親表示法:

由於樹中的每個結點都有唯一的乙個雙親結點,所以可用一組連續的儲存空間(一維陣列)儲存樹中的各個結點,陣列中的乙個元素表示樹中的乙個結點,每個結點含兩個域,資料域存放結點本身資訊,雙親域指示本結點的雙親結點在陣列中位置(下標)。方便查詢某結點的父結點

孩子表示法:

將樹中的每個結點的孩子結點排列成乙個線性表,用鍊錶儲存起來。對於含有 n 個結點的樹來說,就會有 n 個單鏈表,將 n 個單鏈表的頭指標儲存在乙個線性表中,這樣的表示方法就是孩子表示法。如果結點沒有孩子(例如葉子結點),那麼它的單鏈表為空表。方便查詢某結點的子節點

雙親孩子表示法:

方便查詢某結點的子節點和父節點

二叉樹表示法(孩子兄弟表示法):

把乙個普通樹轉化成二叉樹來儲存,此二叉樹的根節點沒有右子樹

使用鏈式儲存結構儲存普通樹。鍊錶中每個結點由 3 部分組成:

其中孩子指標域,表示指向當前結點的第乙個孩子結點,兄弟指標域表示指向當前結點的下乙個兄弟結點。

先把森林轉化為二叉樹,再儲存二叉樹

跟一般樹轉化為二叉樹的過程相似,把不相交的根節點視為兄弟節點

樹和森林的儲存

一 樹的儲存方式 樹與二叉樹的不同之處在於,二叉樹規定了每個節點只有兩個或者兩個一下的孩子,並且兩個孩子之間有序,而樹則可以擁有多個孩子,但是各個孩子之間規定為無序。在儲存樹的時候有多種表示方法 1.雙親表示法 樹上所有的節點以及附加資訊適用乙個陣列來儲存。而陣列每個元素除了儲存樹上節點所包含的資訊...

樹與森林的儲存 遍歷和樹與森林的轉換

樹的儲存結構 雙親表示法 孩子表示法 a 多重鍊錶 鍊錶中每個指標指向一棵子樹的根結點 b 把每個跟結點的孩子結點排列起來,看成乙個線性表,且以單鏈表做儲存結構.且n個頭指標也組成乙個線性表.孩子兄弟表示法 二叉樹表示法或二叉鍊錶表示法 以二叉鍊錶做樹的儲存結構,鍊錶中結點的兩個鏈域分別指向該結點的...

樹的儲存結構

樹的儲存結構 樹的存貯結構有多種表示方法,比較典型的乃是順序結構和鍊錶結構兩類。順序存貯結構即向量,一般將樹結點按自上而下,自左至右的順序一一存放。如前文所介紹的完全二叉樹就可以採用順序存貯結構。1.雙親鍊錶表示法 順序儲存結構常用的有雙親表示法,這種方法在每個陣列元素中存放某個結點資訊和該結點的雙...