這三種結構的特點用一句話概括的話就是:
樹,只有1個根節點
森林,有>=2個根節點,可以理解為由多棵樹組成
二叉樹,作為一種特殊的樹,在滿足只有1個根節點的同時,任意節點的兒子數=<2
樹和森林的結構與二叉樹相比,要求更少,也可以說是更抽象,因此適用於更多的場合。
二叉樹則是根據目前計算機所採用的二進位制儲存機制所設計的,現在的計算機基本都已經集成了各種數制的表示,加上圖形UI,使得很多人已經對二進位制串及其特點不敏感了,但是最底層的處理機制依然與早期的計算機相似,基本全是對0、1串做處理,邏輯判斷也就是true或false,具體表現還是0、1,這種情況下二叉樹就是最簡易、最直觀的。
大多數使用二叉樹的地方也可以使用三叉或四叉之類的結構來替換,但是在具體實現上,由於機器處理能力的特性,還是要轉換為二叉結構,例如針對三叉的判斷,A、B、C三種子情況,計算機還是要按照判斷A與非A、再判斷B與非B這種二叉邏輯來處理。
所謂資料結構只是一種儲存、組織資料的一種方式,無論哪種資料結構都是以這為出發點設計的,最簡單高效、容易理解的資料結構就是最好的。
這三種結構的特點用一句話概括的話就是:
樹,只有1個根節點
森林,有>=2個根節點,可以理解為由多棵樹組成
二叉樹,作為一種特殊的樹,在滿足只有1個根節點的同時,任意節點的兒子數=<2
樹和森林的結構與二叉樹相比,要求更少,也可以說是更抽象,因此適用於更多的場合。
二叉樹則是根據目前計算機所採用的二進位制儲存機制所設計的,現在的計算機基本都已經集成了各種數制的表示,加上圖形UI,使得很多人已經對二進位制串及其特點不敏感了,但是最底層的處理機制依然與早期的計算機相似,基本全是對0、1串做處理,邏輯判斷也就是true或false,具體表現還是0、1,這種情況下二叉樹就是最簡易、最直觀的。
大多數使用二叉樹的地方也可以使用三叉或四叉之類的結構來替換,但是在具體實現上,由於機器處理能力的特性,還是要轉換為二叉結構,例如針對三叉的判斷,A、B、C三種子情況,計算機還是要按照判斷A與非A、再判斷B與非B這種二叉邏輯來處理。
所謂資料結構只是一種儲存、組織資料的一種方式,無論哪種資料結構都是以這為出發點設計的,最簡單高效、容易理解的資料結構就是最好的。