跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 深度優先搜揣 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
深度優先搜揣
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''深度優先搜揣演算法'''(英語:Depth-First-Search,DFS)是一種用佇遍歷抑是搜尋樹仔抑是圖的演算法。這个演算法會冗早深的所在揣樹仔的分支。做節點 v 的所在邊攏去予人探揣過,搜揣欲回溯到發現節點 v 的彼條邊的起始節點。這个過程一直進行到已經發現對源節點會當到的所有節點為止。若猶閣存在無去予人發現的節點,則選擇其中一个作為源節點並重複以上的過程,規个行程重複進行一直到所有的點攏予人儉取做止。這款的演算法袂根據圖的結構等資訊調整執行策略。 深度優先搜揣是圖論中的經典演算法,利用深度優先搜揣演算法會當產生目標圖的拓撲排序表,利用拓撲排序表會當方便解決真濟相關的圖論問題,如無權上長路徑問題等等。 因發明「深度優先搜揣演算法」,約翰 ・ 霍普克洛夫特佮羅伯特 ・ 塔揚佇一九八六年共同得著電腦領域的上懸獎:圖靈獎。 ==演算方法== 一 . 首先共根節點囥入去 stack 中。 二 . 對 stack 中取出第一个節點,而且檢驗伊敢是目標。 : 若揣著目標,結束搜揣並回傳結果。 : 若無共伊某一个猶未檢驗過的直接子節點加入 stack 中。 三 . 重複步數字。 四 . 若是無存在無檢測過直接子節點。 : 共頂一級節點加入 stack 中。 : 重複步數字。 五 . 重複步數四。 六 . 若是 stack 為空,表示規張圖攏檢查過矣—— 亦即圖當中伊無欲走揣的目標。結束搜揣並回傳「揣無目標」。 ==C + + 的實作== 定義一个結構體來表達一个二箍樹的節點的結構: 若按呢咱咧走揣一个樹仔的時陣,佇一个節點開始,會當代先取得的是伊的兩个子節點。比如講: A 是第一个存取的,然後順序是 B 和 D、然後是 E。閣再來 C、F、G。按呢咱按怎來保證這个順序咧? 遮就應該用疊起來的結構,因為疊一个是後進先出 ( LIFO ) 的順序。通過使用 C + + 的 STL,下跤的程式會當幫助理解: ==參考文獻== ==參見== * 闊度優先搜揣 [[分類: 待校正]]
返回到「
深度優先搜揣
」。