1. 程式人生 > 實用技巧 >遍歷順序

遍歷順序

我們看深度優先搜尋或者深度優先遍歷的話,它的整個遍歷順序毫無疑問根節點 1 永遠最先開始的,接下來往那個分支走其實都一樣的,我們簡單起見就是從最左邊開始走,那麼它深度優先的話就會走到底。

資料結構與算法系列 - 深度優先和廣度優先

參考多叉樹模版我們可以在腦子裡面或者畫一個圖把它遞迴起來的話,把遞迴的狀態樹畫出來,就是這麼一個結構。

  • 就比如說它開始剛進來的話,傳的是 root 的話,root 就會先放到 visited 裡面,表示 root 已經被 visit,被 visited之後就從 root.childern裡面找 next_node,所有它的next_node都沒有被訪問過的,所以它就會先訪問最左邊的這個結點,這裡注意當它最左邊這個結點先拿出來了,判斷沒有在 visited裡面,因為除了 root之外其他結點都沒有被 visited過,那麼沒有的話它就直接調dfs,next_node 就是把最左邊結點放進去,再把 visited也一起放進去。
  • 遞迴呼叫的一個特殊,它不會等這個迴圈跑完,它就直接推進到下一層了,也就是當前夢境的話這裡寫了一層迴圈,但是在第一層迴圈的時候,我就要開始下鑽到新的一層夢境裡面去了。