を訪問しましたコードは、ソースから他のすべての頂点までのフルパスを出力します。 私は配列int親を使用しています[num_vertexs];パスを保存します。しかし問題は、私が完全な経路を望んでいないことです。最初の頂点だけが訪れました。ダイクストラ最初のノードは、私が説明しましょう、私はC++でダイクストラプログラムを実施していると私はいくつかの問題を抱えている
最初のノードだけを訪問するにはどうすればよいですか?各ノードの親配列の最初のノードだけを印刷する方法はありますか?
ありがとうございます。
編集: 元の頂点から他のすべての頂点までの完全なパスを含む親配列を印刷する関数を表示します。
void printPath(int parent[], int j){
// Base Case : If j is source
if (parent[j]==-1)
return;
printPath(parent, parent[j]);
printf("%d ", j);
}
この関数は、完全なパスを出力しますが、私は唯一のパスの最初の頂点をしたいです。問題は、printf命令が完全なパスを出力するため、各頂点の最初のものだけをどのように印刷するのか分かりません。どうすればいいですか?ありがとうございました!
はい、方法があります。関連する機能をあなたの質問に編集すると、それを変更する方法が表示されます。 (ここではリンクに依存する質問は好きではありません) – Beta
返信いただきありがとうございます、私は投稿を編集しました。どのような変更を行う必要がありますか教えてください。 – flowero