iT邦幫忙

2025 iThome 鐵人賽

DAY 22
0
Software Development

奶茶裡藏的資料結構(Kotlin範例)系列 第 22

層級關係:認識 Tree 結構

  • 分享至 

  • xImage
  •  

這次的考驗意外地輕鬆。

我一邊啜飲一口珍珠奶茶,一邊想著:資料結構其實也沒那麼生澀難懂嘛。

規則少少的,只要抓住核心,其他部分反而挺隨性的。既然如此,我就用自己的方式來記不就好了?

吸管兩邊都有開口,珍珠在裡面滾動,不就很符合 Deque 的定義嗎?

照著 Queue 的規則用,就是乖乖吸珍珠——先進先出。

但如果把吸進來的珍珠當吹箭一樣「啵」地吹出來,就變成 Stack,後進先出。

也就是說只要看「是不是從入口同側出去」就能知道是 Queue 還是 Stack。

而且因為放資料的順序固定了,所以也能說是用入場時間排。
Queue 先搶先得先機,和售票系統一樣;而 Stack 則像逆行、回溯,這麼一想,我立刻聯想到電腦裡的應用:偉大的「編輯復原」Ctrl+Z,還有每天都會用到的「上一頁」功能,不就是活生生的 Stack 嗎?

那麼,Tree 呢?

我翻到下一章節的標題,皺起眉頭。

「家庭樹」、「技能樹」這些詞,生活裡很常聽見,所以直覺就能判斷 Tree 一定不是一條線,而是會分岔的結構。只是光用想像,腦袋就要打結了。這已經超出我的理解範圍,只好再次去找學長求救。

學長聽完我的困惑,笑著搖搖頭:「那是因為你還被 Stack、Queue 的印象影響著。Tree 不一樣,它不是線性結構,本身也不強調先後次序。要形容的話,更接近『層級關係』——比如父子關係、上下級關係。」

他頓了頓,補充道:「當然,如果要的話,也能在 Tree 裡加上順序規則。像二元搜尋樹,就是為了更快找到接近目標的結果,所以才會需要排序。」


上一篇
Stack 與 Queue:同一個容器,不同的規則
下一篇
Tree:你和鄰居沒有直接關係
系列文
奶茶裡藏的資料結構(Kotlin範例)24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言