2014-05-20 46 views
0

我需要迭代圖(DFS),但不使用標準的DFS訪問者回調技術。在沒有訪客的情況下遍歷提升圖

有沒有辦法以這種方式迭代遍歷圖?

for(each edge in my graph visited in dfs) { 
    do some complicated stuff; 
} 
+1

等待,你想要DFS但不是DFS?你是否僅僅意味着你不喜歡BGL API? – sehe

+0

是的。我將提升整合到一些現有的代碼中,如果它以這種方式工作,它會簡單得多。 – subzero

回答

0

是的,這取決於具體的圖表類型,你可以做

auto e = edges(g); 
for (auto it = e.first; it != e.second; ++it) 
{ 
} 

如果你圖模型不同的概念,你可能想in_edges(g)out_edges(g)http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/graph_concepts.html

編輯更新到評論:

你必須自己包裝它 然後。您可以使用Boost Coroutine強制使用拉式接口。或者您可以使用訪問者填寫隊列,DFS完成後您將使用該隊列。

+0

感謝您的快速響應。但是,我將如何去訪問DFS順序中的邊緣? – subzero

+0

我已更新我的回答 – sehe

+0

感謝您的幫助! – subzero

相關問題