算法與數據結構學習(48)-圖的深度優先(DFS)

圖遍歷介紹

所謂圖的遍歷,即是對結點的訪問。一個圖有那麼多個結點,如何遍歷這些結點,需要特定策略,一般有兩種訪問策略:
(1)深度優先遍歷 (2)廣度優先遍歷

圖的深度優先搜索(Depth First Search)

  1. 深度優先遍歷,從初始訪問結點出發,初始訪問結點可能有多個鄰接結點,深度優先遍歷的策略就是首先訪問第一個鄰接結點,然後再以這個被訪問的鄰接結點作爲初始結點,訪問它的第一個鄰接結點, 可以這樣理解:每次都在訪問完當前結點後首先訪問當前結點的第一個鄰接結點。
  2. 我們可以看到,這樣的訪問策略是優先往縱向挖掘深入,而不是對一個結點的所有鄰接結點進行橫向訪問。
  3. 顯然,深度優先搜索是一個遞歸的過程

深度優先遍歷算法步驟

  1. 訪問初始結點v,並標記結點v爲已訪問。
  2. 查找結點v的第一個鄰接結點w。
  3. 若w存在,則繼續執行4,如果w不存在,則回到第1步,將從v的下一個結點繼續。
  4. 若w未被訪問,對w進行深度優先遍歷遞歸(即把w當做另一個v,然後進行步驟123)。
  5. 查找結點v的w鄰接結點的下一個鄰接結點,轉到步驟3。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章