cykl hamiltona

0

Mam problem ze znalezieniem cyklu hamiltona w grafie nieskierowanym.
Oto moj kod:
podaje n -> liczba wirzcholkow, v-> na poczatku 0, path to sciezka, visited to czy wirzcholek byl odwiedzony i NM to macierz sasiedztwa

 int Hamilton(int n, int v, int* path, int* visited, int NM[][n]) {



	path[nr] = v;					// dopisujemy wierzcholek do sciezki
    printf("%d ", path[nr] );
    nr++;

	if (nr != n) {					// jesli sciezka jest jeszcze niepelna
		visited[v] = 1;
		for (x=0; x<n; x++) 		// dla wszystkich wierzchołkow x
			if (NM[v][x])
                if  (visited[x]==0)// jesli istnieje krawedz v-x i x nie byl odwiedzony
				Hamilton(n, x, path, visited, NM); // przejdz do x
		visited[v] = 0;
		}


	else if (NM[v][0]) {  				// jesli scieżka zawiera juz wszystkie wierzchołki i jest cyklem
			printf("CH: ");
			for ( x=0; x<n; x++);
			printf("%d, ", path[x]); // wypisz ja
				
			CH++;				// liczba cykli++
		}

	nr--; 						// usuwamy wierzchołek ze scieżki

	}

Prosze pomozcie mi to jakos dopracowac , potrzebuje to na jutro

1 użytkowników online, w tym zalogowanych: 0, gości: 1