若要用深度優先的方式走訪一樹狀結構的所有節點,堆疊(stack)是比較適合的資料結構。在深度優先搜尋中,我們先從根節點開始,遍歷其所有子節點,再往下一層遍歷,直到搜尋到樹的底部。當遍歷某個節點時,我們會先遍歷其左子節點,再遍歷右子節點。這種遍歷方式是使用堆疊可以比較方便地實現。
具體來說,我們可以使用一個堆疊來存儲要遍歷的節點。每次遍歷一個節點時,我們把該節點的右子節點和左子節點(如果有的話)按照相反的順序壓入堆疊中,這樣可以保證下一個被遍歷的節點是左子節點(因為堆疊是後進先出的)。當堆疊為空時,表示搜尋完成。