Скачиваний:
16
Добавлен:
18.03.2018
Размер:
1.09 Кб
Скачать
//Поиск в глубину рекурсивный

#include <conio.h>
#include <iostream>
#define N 6

using namespace std;

/*int G[N][N]={{0,1,1,0},
             {1,0,1,0},
             {1,0,0,1},
             {0,1,0,0}}, 
    P[N]={0,0,0,0}, 
  */  
  int G[N][N]={0,1,1,0,0,0,
               1,0,1,0,0,0,
               1,0,0,1,0,0,
               0,1,0,0,1,0,
               0,0,0,0,0,1,
               0,0,0,1,1,0}, 
    P[N]={0,0,0,0,0,0}, c=0;

int next (int i, int cur)
{
    cur++;
    while (cur<N && !G[i][cur]) cur++;
    if (cur<N) return cur;
    return -1;
}

void DFSR (int x)
{
	int y;
    
	P[x] = ++c; //помещаем вершину в путь
	y = next (x, -1);
    while (y != -1)  //пока есть смежные вершины
	{
        if (!P[y])   //если вершины еще нет в пути
            DFSR (y);       //продолжаем с нее обход
        y = next (x, y); //переходим к следующей вершине
    }
}

main()
{
    int x;

/*	for (x=0; x<N; x++)
		if (P[x]==0) DFSR(x);
	*/
	DFSR(1);
    for (x=0; x<N; x++)
        cout << P[x] <<" ";
    getch();
    return 0;
}
Соседние файлы в папке Граф