Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int a[100][100] = { 0 }; // Матрица смежности
- int mark[100] = { 0 }; // Метки посещенности вершин
- void dfs(int v, int n) {
- mark[v] = 1;
- cout << "Посетили вершину " << v << endl;
- for (int i = 1; i <= n; i++) {
- // Если есть дуга v->i, а i - не посещенная вершина, запускаем dfs от i.
- if (a[v][i] == 1 && mark[i] == 0)
- dfs(i, n);
- }
- }
- void main() {
- setlocale(LC_ALL, "Russian");
- int n;
- cout << "Введите колво вершин" << endl;
- cin >> n;
- int v1, v2;
- cout << "Вводите смежные вершины (формат: <v1> <v2>, окончание ввода - 0 0)" << endl;
- cin >> v1 >> v2;
- while (v1 != 0 && v2 != 0) {
- a[v1][v2] = 1;
- cin >> v1 >> v2;
- }
- for (int i = 1; i <= n; i++)
- if(mark[i] == 0)
- dfs(i, n);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement