普通樹存儲
❶ 必須把一般樹轉化成二叉樹後才能進行存儲這句話對嗎
不對的,存儲樹有很多種方法,不夠其中的孩子兄弟法,和二叉鏈表法在存儲結構上類似,所以可以將樹轉化為二叉樹,但並不是說一般樹轉化成二叉樹後才能進行存儲
❷ 如何將數據以樹的形式存儲在內存中
1、棧區(stack):由編譯器自動分配和釋放 ,存放函數的參數值、局部變數的值等,甚至函數的調用過程都是用棧來完成。其操作方式類似於數據結構中的棧
2、堆區(heap) :一般由程序員手動申請以及釋放, 若程序員不釋放,程序結束時可能由OS回收 。注意它與數據結構中的堆是兩回事,分配方式類似於鏈表
3、全局區(靜態區)(static):全局變數和靜態變數的存儲是放在一塊的,初始化的全局變數和靜態變數在一塊區域, 未初始化的全局變數和未初始化的靜態變數在相鄰的另一塊區域。程序結束後由系統釋放空間
4、文字常量區:常量字元串就是放在這里的。 程序結束後由系統釋放空間
5、程序代碼區:存放函數體的二進制代碼
❸ 樹的存儲方法主要有哪些
三叉鏈表不就是存儲結構,其具體實現既可以用指針實現,也可以用數組實現 至於遍歷方法可以任意地在二叉樹中上下
❹ 樹的存儲表示是什麼
樹的存儲結構根據應用的不同而不同,有的從雙親的角度考慮,引出了雙親表示法,有的從孩子的角度考慮,給出孩子表示法,還有的從孩子和兄弟的角度來討論。這些都是人們在大量的應用中所使用的不同形式的存儲結構,這里介紹常用的雙親表示法、孩子表示法、雙親孩子表示法和孩子兄弟表示法。
1.雙親表示法由樹的定義可知,樹中每個結點都有且僅有一個雙親結點,根據這一特性,可以用一組連續的一維數組來存儲樹中的各個結點(一般按層次存儲),數組中的一個元素對應樹中的一個結點,其中包括結點的數據信息以及該結點的雙親在數組中的下標。樹的這種存儲方法稱為雙親表示法,雙親表示法的結點結構如圖1所示,其中,data表示數據域,存儲樹中結點的數據信息,parent表示指針域,存儲該結點的雙親在數組中的下標。
1.雙親表示法的存儲結構2)雙親表示法示例圖1所示的樹的雙親表示如圖1所示,這是一棵樹及其雙親表示法的存儲結構。根結點A無雙親,所以parent的值為-1,G、H和I的parent值為4,表示它們的雙親是下標為4的結點E。這種存儲結構利用任一結點的雙親是唯一的性質,可以方便地直接找到任一結點的雙親結點,但求結點的孩子結點時需要掃描整個數組。
圖1樹的雙親表示法示例
❺ 數據結構,樹的常用存儲方式
存入文本文件,每行:孩子節點-父節點。
這樣也方便用Hadoop進行處理。
❻ 二叉樹的存儲結構是怎樣的有哪些類型的存儲結構對應的c語言描述是
樓上回答的是樹的存儲,不是二叉樹的存儲,主要如下:
1、順序存儲:適用於完全二叉樹,如果根從1開始編號,則第i結點的左孩子編號為2i,右孩子為2i+1,雙親編號為(i/2)下取整,空間緊密
2、二叉鏈表:適用於普通二叉樹,每個結點除了數據外,還有分別指向左右孩子結點的指針,存儲n個結點有n+1個空指針域,存儲密度小於順序存儲,但是適用范圍廣,缺陷是正常遍歷只能從雙親向孩子,退回來一般需要藉助棧(或者用遞歸,其實也是棧)
3、三叉鏈表:同樣適用於普通二叉樹,結點除了數據外,還有左右孩子與雙親的指針,存儲密度低於二叉鏈表,但是可以非常方便地在二叉樹中遍歷,不需要其他輔助工具
❼ 數據結構中樹的存儲問題
在樹結構中有雙親表示法、孩子表示法、孩子兄弟表示法等,其中雙親表示法,屬順序存儲結構,孩子表示法、孩子兄弟表示法以屬鏈式存儲
❽ 怎麼將一棵樹保存到資料庫中去
假設有如下一棵樹:
這種結構下,如果查詢某一個節點的直接子節點,十分容易,比如要查詢D節點的子節點。
❾ 二叉樹的存儲方式有哪些
二叉樹的存儲方式通常有動態存儲。用結構體表示二叉樹的一個節點。用數據域保持保存節點的值,用鏈接語保存兩個孩子的指針。還有就是採用滿二叉樹的順序存儲方式。
❿ 樹的存儲結構,孩子鏈存儲表示法沒看懂求解釋
對於一般的家譜樹(一般的多叉樹)來說,我們可以很清楚的看出層次關系,樹的層數表示代數(一共多少代人),樹的最後一層表示最後一代人,由於多叉鏈表法表示的不方便,因此被迫無奈採用孩子兄弟表示法(二叉鏈表法).