2016-11-29 2 views
1

このツリーのノードYに到達したいが、このコードは全探索ツリーである。私の目標を達成するために私は何をすべきですか?どのようにトラバースの各ステップで旅行パスを表示するには?私は深さの最初の検索を使用します。助けていただきありがとうございます。 深さ最初の探索アルゴリズム

class Graph 
{ 
int V; // No. of vertices 
list<int> *adj;  
void DFSUtil(int v, bool visited[]); 
public: 
Graph(int V); 
void addEdge(int v, int w); 
void DFS(int v); 
}; 
Graph::Graph(int V) 
{ 
this->V = V; 
adj = new list<int>[V]; 
} 
void Graph::addEdge(int v, int w) 
{ 
adj[v].push_back(w); // Add w to v’s list. 
} 
void Graph::DFSUtil(int v, bool visited[]) 
{ 
visited[v] = true; 
cout << v << " "; 
list<int>::iterator i; 
for (i = adj[v].begin(); i != adj[v].end(); ++i) 
    if (!visited[*i]) 
     DFSUtil(*i, visited); 
} 
void Graph::DFS(int v) 
{ 
bool *visited = new bool[V]; 
for (int i = 0; i < V; i++) 
    visited[i] = false; 
DFSUtil(v, visited); 
} 
int main() 
{ 
Graph g(25); 
g.addEdge(0, 1); 
g.addEdge(0, 2); 
//... 
return 0; 
} 

enter image description here

+1

誰かから宿題をコピーしましたか? : – Starl1ght

+1

@ Starl1ghtここから:http://www.geeksforgeeks.org/depth-first-traversal-for-a-graph/ –

+0

「ABCのやり方を知っています。どうやってAをすることができますか?」あなたがそれを自分で書いたのであれば、答えは自明でなければならない – user463035818

答えて

0

グラフ::ます。dfsutilは「見つかった」フラグ、および検出された「真==が見つかり、」毎回拡張することができ、これまでに通過したノードのリストを、返さなければなりません。

関連する問題