Direct Graph で回路を見つけたいのですが、この回路は特定の頂点で始まり、そこで終わります。このグラフを作成するために隣接リストのデータ構造を使用していますが、アルゴリズムがどのようになるかわかりませんでした。助けてください。どうもありがとう
質問する
795 次
3 に答える
1
このヒントが役立つかもしれません:
- トラバースグラフ(任意のアルゴリズム-BFS DFS)
- 訪問したカラーノードとその親を保存
- トラバースしているノードがすでに色付けされているかどうかを確認してから、同じノードが得られるまでその親にループバックします。
于 2012-05-05T00:50:54.627 に答える
0
DFSはサイクルを見つけます。
于 2012-05-05T00:50:28.963 に答える
0
void DFS (Node* ptr , int node , int index , int n )
{ int i;
if ( ptr == NULL)
{
ptr=arrNode[index].next;
node = ptr->vertex;
}
for ( int i=0 ; i < n ; i++)
{
if ( ( node == arrNode[i].vertex) && (ptr->visit=false))
{
ptr=arrNode[i].next;
ptr->visit = true;
s.push(arrNode[i].vertex);
}
ptr=ptr->next;
DFS(ptr,ptr->vertex,i+1 , n );
}
}
于 2012-05-05T11:43:24.230 に答える