前面幾天都在講線性
資料結構,現在開始要來講非線性
的資料結構了,今天就先從樹狀結構
講起
最近假日的風景區常常爆滿,大家都到戶外踏青去了,爬爬山,走走路,欣賞大自然的風景,熱了就道樹下乘涼,而你有注意過樹
為什麼可以長得如此茂密或高大嗎?樹的主要由根、莖、葉、花、果實、種子組成,各個部位都會隨著時間與氣候的變化而生長,我們快速地從一棵樹的狀態判斷出它的生長情況,例如分支
多不多,樹葉
多不多
圖片來源:https://www.pexels.com/zh-tw/photo/9277/
另外,我們也會用枝繁葉茂來形容家族人丁興旺的樣子,如以下的組織圖
最後就是我們常見的資料夾了,其實也是一層一層的進行儲存與管理
透過上述的生活例子,會發現樹狀結構是一種階層式的架構
,而非線性結構,資料已經沒有前後的關係
,只有上對下
,或下對上
的關係,像是爸爸與小孩之間的關係
是由一個或多個節點所組成的集合
樹根或根節點(Root)
沒有父節點,會畫在樹狀結構的最頂層,例如:Alice
父節點(Parent)
如果此節點有下層節點,則為父節點,例如:Alice、Bob、Chris
Alice 下面有 Bob 跟 Chris
Bob 下面有 Eva 跟 Frank
Chris 下面有 Gina
子節點(Children)
如果此節點有上層節點,則為子節點,例如:Bob、Chris、David、Eva、Frank、Gina
Bob、Chris、David 上面有 Alice
Eva、Frank 上面有 Bob
Gina 上面有Chris
兄弟節點(Siblings)
有共同的父節點,例如:Bob、Chris、David 與 Eva、Frank
Bob、Chris、David 共同的父節點為 Alice
Eva、Frank 共同的父節點為 Bob
分支度(Degree)
父節點下有幾個子節點,例如:
Alice 分支度是 3,有 3 個子節點(Bob、Chris、David)
Bob 分支度是 2,有 2 個子節點(Eva、Frank)
終端節點或樹葉節點(Terminal)
沒有子節點(下層節點),例如:David、Eva、Frank、Gina
非終端節點(Non-terminal)
除了樹葉節點之外,其他都是非終端節點,例如:Alice、Bob、Chris
階層(Level)
位於樹狀結構的第幾層,例如:
Alice 在第 1 層
Frank 在第 3 層
高度(Height)或深度(Depth)
樹狀結構總共有幾層,例如:以Alice的樹狀圖來說,高度為 3
樹狀結構有比較多的專有名詞,雖然對這些名詞感到陌生,但其實並不會很難,跟我們常見的組織圖
或是親屬關係
有很多相似的地方,這些基本的觀念要理解清楚,會有助於了解明天二元樹
的內容哦!
文字家族要舉辦中秋節聚餐,要推派幾個人出來負責籌辦,只要符合以下任一條件者就是籌辦人員:
你知道籌辦成員有哪些人嗎?是哪些文字嗎?這些文字之間似乎暗藏著某些訊息,好像可以組成某一個字,你發現了嗎?
謎題說明:要掌握先進先出
的特性(FIFO),榨汁機入口
先放入草莓,那麼殘渣的出口
就會先看到草莓,所以草莓的殘渣會在最底部