Нахождение всех путей в графе

  • Автор темы K16FORWARD
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

K16FORWARD

Гость
#1
Всем доброго времени суток=)
Задали курсовой проект, в котором даётся неориентированный граф и нужно найти все пути из точки А в точку Б. Если бы надо было найти только один путь я бы сразу сделал, тем более есть свой алгоритм с флагами для этого дела=)
В общем в программе дошёл до того что она считывает матрицу смежности из файла и передаёт её в двумерный массив, сделал функцию поиска путей, но она совсем уж криво работает, точнее даж и не работает, укажите плз на ошибки=) Язык С, пишу на Visual Studio 2010.
C++:
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#define TownMax 6

void ReadMatr(int matr[TownMax][TownMax])
{	int i=0,j=0;
FILE *fp;
if((fp=fopen("D:\\matr.txt", "r"))==NULL) 
{
printf("File not found\n");
exit(1);
}
for(i = 0; i < TownMax; ++i)
for(j = 0; j < TownMax; ++j)
fscanf(fp, "%d", &matr[i][j]);
fclose(fp);
}

void GetWays (int begin, int end, int matr[TownMax][TownMax])
{
int Visited[TownMax]={0};
Visited[begin] = 1;
int Way[TownMax]={0};
int i,j=0,schet=0;

for (i=1; i<=TownMax;i++)
{
if ((matr[begin][i]!=0) && (Visited[i]==0)) 
{
Way[TownMax]=i; schet++;
Visited[i]=1;
}
if (Way[1]==begin && Way[schet]==end)
{	
for (i=0; i<schet;i++)
printf("Путь:%d",Way[TownMax]);
}

}
}

int main()
{	int begin,end;
int matr[TownMax][TownMax]={0};
puts("Gets begin and end points");
ReadMatr(matr);
scanf("%d%d",&begin,&end);
GetWays (begin,end,matr);
getch();
}
 
Статус
Закрыто для дальнейших ответов.