您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何理解編程中的樹”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何理解編程中的樹”吧!
樹
樹是一種非常常用的數據結構,與線性表,堆棧并駕齊驅。
樹的定義
樹是從自然界抽象出來的,它指的是N個父子節點的有限集合,對于這個有限集合,需要滿足如下條件:
當N=0時,該節點集合為空,這棵樹也為空
在任意非空樹中,只能有一個根節點
當N>1時,除去跟節點意外的其余節點本身也要集合成為一顆樹。即,樹具有遞歸特性,一棵樹是由若干子樹組成,每顆樹又是由若干顆更小的子樹組成,如圖所示
二叉樹
二叉樹指每個節點最多只能有兩個子樹的有序樹。通常左邊子樹稱之為左子樹,右邊樹稱之為右子樹。二叉樹最多只能有兩顆對稱的樹,二叉樹有左,右之分。樹和二叉樹的區別
1. 樹的節點的度數沒有限制,二叉樹限制為2,樹沒有限制。
2. 無序樹的節點沒有左右之分,二叉樹的節點有左右之分。
二叉搜索樹
二叉搜索樹,它是一顆空樹,具有以下性質的二叉樹,稱之為二叉搜索樹
它的左子樹不為空,并且左子樹的所有節點值都要小于跟節點的值。
它的右子樹不為空,則右子樹的所有節點的值都要大于跟節點的值。
它的左右子樹分別為二叉排序樹。
平衡二叉樹
平衡二叉樹具有以下性質 他是一顆控訴或者他的左右兩個子樹的高度差絕對值不超過1,并且左右兩個子樹都是一顆平衡二叉樹。平衡二叉樹實現有紅黑樹,AVL,伸展樹,最小二叉平衡樹的節點公示為:F(n)=F(n-1)+F(n-2)+1
B-樹
一顆m階B樹,是一顆平衡的m路搜索樹,或者是空樹,滿足以下性質
1根節點至少有兩個子女
每個非跟節點包含k-1個元素和k個孩子,其中m/2 <= k <= m
所有的葉子結點都位于同一層。
每個節點中的元素從小到大排列,節點當中k-1個元素正好是k個孩子包含的元素值域的劃分一般用于文件系統或者數據庫的索引
一般用于文件系統或者數據庫的索引
B+樹
B+樹具有以下特點
有k個子樹的中間節點包含k個元素,每個元素不保存數據,只用來保存索引,所有數據保存在葉子節點。
所有的葉子節點中包含了全部的元素信息,以及指向這些元素信息的執政,并且葉子節點本身也是按照由大到小依次排列。
所有的中間節點元素都保存在葉子節點,在子元素中總是最大或者最小的元素。
紅黑樹
紅黑樹是平衡二叉樹的實現,具有以下特征
節點是紅色或者是黑色。
根節點時黑色。
每個葉子節點都是黑色節點的空節點
每個紅色節點的兩個子節點都是黑色,從每個葉子節點到根的所有路徑上不能有兩個連續的紅色節點
從任意節點到每個葉子節點所有的路徑都包含相同數目的黑色節點。
感謝各位的閱讀,以上就是“如何理解編程中的樹”的內容了,經過本文的學習后,相信大家對如何理解編程中的樹這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。