DFSを使用して、C++で方向図のパスをナビゲートします.
1.指定方向図の幹線を入力すると、1番から最大番までの分岐数のコードが出力される
1行目には、頂点数Nと幹線数Mが与えられる.
#include <iostream>
#include <vector>
using namespace std;
int n, m, cnt = 0;
int ch[101];
vector<int> V[101];
void DFS(int vertex) {
if(vertex == n) { // 종료 조건
cout << "path is : ";
for(int i=1; i<=n; i++) {
if(ch[i] == 1) cout << i << " ";
}
cout << "\n";
cnt++;
}
else {
for(int i=0; i<V[vertex].size(); i++) {
int next_vertex = V[vertex][i];
if(ch[next_vertex] == 0) {
ch[next_vertex] = 1;
DFS(next_vertex);
ch[next_vertex] = 0;
}
}
}
}
int main() {
freopen("input.txt", "rt", stdin);
cin >> n >> m;
for(int i=1; i<=m; i++) {
int a, b;
cin >> a >> b;
V[a].push_back(b);
}
ch[1] =1; // 1번 정점에서 출발
DFS(1);
cout << cnt;
return 0;
}
5 9
1 2
1 3
1 4
2 1
2 3
2 5
3 4
4 2
4 5
Reference
この問題について(DFSを使用して、C++で方向図のパスをナビゲートします.), 我々は、より多くの情報をここで見つけました https://velog.io/@juwon9733/DFS를-이용한-방향-그래프에서의-경로-탐색-in-Cテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol