iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
Software Development

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

Tree 的兩個搜尋方法:DFS vs BFS

  • 分享至 

  • xImage
  •  

我左看看右看看。

「學姊,我學會了怎麼排出二元搜尋樹的方法,可是⋯⋯你還沒教我怎麼搜尋啊?」

「啊呀,玩得太開心,差點忘記重點了。」學姊吐了吐舌頭,露出有點調皮的笑容。

「搜尋的起點,當然是從 Root ,這個頂端開始。至於搜尋方法分兩大類。」她把手指指向紙牌屋底部。「第一種叫 Depth First Search,簡稱 DFS。」

「方法是不停往下走,直到無路可走,還是沒找到搜尋對象,就往回一層,往右一格再往下找。算是直線走法。」

「第二種方法叫一邊Breadth First Search,簡稱BFS。」她把手指指向紙牌屋上半部。「跟剛剛相反,橫著找,找完一層再往下一層找。」

「那哪個比較好用?」我有點疑惑?

「看你的目標在哪裡呀。」學姊聳肩。「你覺得比較會在底部就用 DFS ,覺得會在淺層就用 BFS 。所以迷宮探索會用 DFS ,畢竟通常終點離起點很遠。而 BFS 就是用來找捷徑、最短距離之類的。」

「有比較近嗎?如果目標在最右邊,不是也要橫著走很遠?」我提出疑惑。

「喔喔,忘了和你說明,同一層的距離都是一樣的,因為所謂的距離是和 Root 的距離,不是你走的距離。」學姊補充道。


上一篇
當學姊用撲克牌實作二元搜尋樹
下一篇
樹上的家族:父母、孩子和葉子
系列文
奶茶裡藏的資料結構(Kotlin範例)27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言