簡體   English   中英

DFS在C ++中迷宮的最短路徑

[英]DFS shortest path of a maze in C++

我在弄清楚如何使它正常工作方面遇到困難...我正在嘗試使用DFS獲得達到目標的最短路徑。 我知道BFS更好,但是我被要求為此使用DFS。 如您所見,我嘗試在所有導致目標找到的堆棧之間進行比較,但是這種方法不起作用,只有第一個導致目標的堆棧才被打印出來……我知道我需要在某個地方取消訪問節點,但我不知道具體如何操作。 現在,我確實可以達成目標,但並非最短目標。 任何幫助,將不勝感激。

通過使用自己的堆棧,可以編寫非遞歸DFS,但是我發現遞歸解決方案更加優雅。 這是一個草圖:

DFS(vertex)

    path.push_back(vertex)
    visited[vertex] = true

    if we found the exit
        output path
    else
        for each neighbor v of vertex
            if not visited[v]
                DFS(v)

    visited[vertex] = false
    path.pop_back()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM