『壹』 樹的存儲表示是什麼
樹的存儲結構根據應用的不同而不同,有的從雙親的角度考慮,引出了雙親表示法,有的從孩子的角度考慮,給出孩子表示法,還有的從孩子和兄弟的角度來討論。這些都是人們在大量的應用中所使用的不同形式的存儲結構,這里介紹常用的雙親表示法、孩子表示法、雙親孩子表示法和孩子兄弟表示法。
1.雙親表示法由樹的定義可知,樹中每個結點都有且僅有一個雙親結點,根據這一特性,可以用一組連續的一維數組來存儲樹中的各個結點(一般按層次存儲),數組中的一個元素對應樹中的一個結點,其中包括結點的數據信息以及該結點的雙親在數組中的下標。樹的這種存儲方法稱為雙親表示法,雙親表示法的結點結構如圖1所示,其中,data表示數據域,存儲樹中結點的數據信息,parent表示指針域,存儲該結點的雙親在數組中的下標。
1.雙親表示法的存儲結構2)雙親表示法示例圖1所示的樹的雙親表示如圖1所示,這是一棵樹及其雙親表示法的存儲結構。根結點A無雙親,所以parent的值為-1,G、H和I的parent值為4,表示它們的雙親是下標為4的結點E。這種存儲結構利用任一結點的雙親是唯一的性質,可以方便地直接找到任一結點的雙親結點,但求結點的孩子結點時需要掃描整個數組。
圖1樹的雙親表示法示例
『貳』 【數據結構】樹的定義和樹的三種存儲結構
樹(Tree)是n(n>=0)個結點的有限集。n=0時稱為空樹。在任意一顆非空樹中:
假設以一組連續空間存儲數的結點,同時在每個結點中, 附設一個指示器指示其雙親結點到鏈表中的位置 。
把每個結點的孩子結點排列起來,以 單鏈表作為存儲結構 ,則n個結點有n個孩子鏈表,如果是葉子結點則此單鏈表為空。然後 n個頭指針又組成一個線性表,採用順序存儲結構 ,存放進一個一維數組中。
孩子表示法有兩種結點結構: 孩子鏈表的孩子結點 和 表頭數組的表頭結點
對於孩子表示法,查找某個結點的某個孩子,或者找某個結點的兄弟,只需要查找這個結點的孩子單鏈表即可。但是 當要尋找某個結點的雙親時 ,就不是那麼方便了。所以可以將雙親表示法和孩子表示法結合,形成 雙親孩子表示法 。
任意一棵樹,它的結點的第一個孩子如果存在就是唯一的,它的右兄弟存在也是唯一的。因此,設置兩個指針,分別指向該結點的第一個孩子和此結點的右兄弟。
『叄』 數據結構,樹的常用存儲方式
存入文本文件,每行:孩子節點-父節點。
這樣也方便用Hadoop進行處理。
『肆』 二叉樹的存儲方式有哪些
二叉樹的存儲方式通常有動態存儲。用結構體表示二叉樹的一個節點。用數據域保持保存節點的值,用鏈接語保存兩個孩子的指針。還有就是採用滿二叉樹的順序存儲方式。