エッジは、ノードを未訪問、発見、または終了(または、白、灰色、黒)にラベル付けする再帰的DFSを使用して、3つのカテゴリ(バックエッジ、ツリー/フォワードエッジ、クロスエッジ)に従って分類できます。反復DFSのエッジ分類
アルゴリズムの反復バージョン(Depth-First Search参照)を使用してエッジを分類することはできますか?
procedure DFS-iterative(G,v):
2 let S be a stack
3 S.push(v)
4 while S is not empty
5 v = S.pop()
6 if v is not labeled as discovered:
7 label v as discovered
8 for all edges from v to w in G.adjacentEdges(v) do
9 S.push(w)
このバージョンでは、未訪問の2つのカテゴリのみが使用されています。すべての隣接ノードがスタックにプッシュされた後にノードを終了としてマークできましたが、期待される結果は得られませんでした。
EDIT(Clarification):問題は、前述のDFSの反復バージョンを修正して、ツリー/フォワードエッジ、クロスエッジ、バックエッジとしてエッジを分類することです。ノードラベル/色を利用していますか?
あなたの質問は何か分かりません。あなたはそれを書き直せますか? – xenteros
カテゴリの定義も含めてください。 – Yerken
私の理解では、カテゴリーの定義は、[here](https://en.wikipedia.org/wiki/Depth-first_search)から取ったものです:_forward edges_ツリーのノードから子孫、_back edges_ノードからその祖先の1つを指し、_cross edges_ doはどちらでもない – Codor