@pashaa

Как осуществить backtrack для поиска всех путей между вершинами графа?

Как переделать программу чтобы осуществлялся поиск в графе между двумя вершинами с обратным ходом?
#include <stdio.h>
#include <conio.h>
#include<clocale>
#include<iostream>
#define n 5
char A[n][n] =
{ 
	1, 1, 1, 0, 1,
	1, 1, 1, 0, 0,
	1, 1, 1, 1, 0,
	0, 0, 1, 1, 1,
	1, 0, 0, 1, 1,
};
int mas[n] = { 0,0,0,0,0 };
using namespace std;
bool flag[n] = {false};
void DFS(int k, int prev, int cur)
{
	
		cout  << " - " << cur;
flag[cur] = true;
for (int i = 0; i < n; i++)
{
	if (i-1 == k) break;
	if (flag[i] == false && A[cur][i] == 1)
	{

		DFS(k, cur, i);
	}
}
}

int main()
{
int FST;
printf("Input number of list vertex: ");
scanf_s("%d", &FST);int k = 3;
cout << FST;
DFS(k, -1, FST);
_getch();
return 0;
}
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы