DFS
は私の心の中に書いてあり、教科書や擬似コードでアイデアを紹介していません。私は不必要な計算をしているいくつかのコード行を持っていると思います。アルゴリズムの複雑さを軽減するためのアイデアはありますか?デプスファーストサーチの実装と改良の可能性
vector<int>visited;
bool isFound(vector<int>vec,int value)
{
if(std::find(vec.begin(),vec.end(),value)==vec.end())
return false;
else
return true;
}
void dfs(int **graph,int numOfNodes,int node)
{
if(isFound(visited,node)==false)
visited.push_back(node);
vector<int>neighbours;
for(int i=0;i<numOfNodes;i++)
if(graph[node][i]==1)
neighbours.push_back(i);
for(int i=0;i<neighbours.size();i++)
if(isFound(visited,neighbours[i])==false)
dfs(graph,numOfNodes,neighbours[i]);
}
void depthFirstSearch(int **graph,int numOfNodes)
{
for(int i=0;i<numOfNodes;i++)
dfs(graph,numOfNodes,i);
}
PS:は、誰かが品質の良いC++のコードを挿入するためにどのようにすることができます私は私を教えリンクを送ってもらえます。構文の強調表示を試みましたが、うまくいきませんでした。
は素晴らしい答えをどうもありがとうございます!もう少しばかげた質問ですが、このコードを投稿するためにどのようなタグを使用しましたか?プレタグとコードタグがうまく機能しない – Ali
私は編集者のフォーマットソースコードボタンを使用しました。これは '{}'のようです – KCH