跳至主要内容

5. 一切皆可搜尋

第 5 章 一切皆可搜尋

📄️ 5.2 深度優先搜尋

深度優先搜尋 (DFS) 是一種搜尋方法,在搜尋到一個新節點時,會立即對該節點進行遍歷。因此,遍歷需要使用 先入後出 (LIFO) 的堆疊,也可以透過與堆疊等價的 遞迴 來實現。對於樹結構而言,由於每次總是對新節點進行遍歷,因此看起來像是往“深”的方向前進。在 Python 中,我們可以使用 collections.deque 來實現 C++ 中的堆疊。然而,在大多數情況下,我們會選擇使用 C++ 的 vector 或 Python 的 list 來實現堆疊,因為它們不僅是先入後出的數據結構,還支持隨機存取。