Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int liczbaWierzcholkow;
- private int liczbaKrawedzi;
- public List<int>[] lista = new List<int>[10]; //lista sasiedztwa
- private int[,] przebyty = new int[10,10]; // Przebyte wierzcholki
- public List<int> wynik = new List<int>(); // Kolejne wierzcholki w cylku
- private int wierzcholekStart;
- public void DFS(int v)
- {
- for (int i = 0; i < liczbaWierzcholkow; i++)
- lista[i] = new List<int>();
- while (lista[v].Count!=0)
- {
- int w = lista[v].Last();
- lista[v].RemoveAt(w);
- if (przebyty[v,w] == 0)
- {
- przebyty[v,w] = 1;
- przebyty[w,v] = 1;
- DFS(w);
- wynik.Add(w);
- }
- }
- }
- public void cyklEulera(Graf wczytajGraf)
- {
- wczytajGraf = new Graf();
- for (int i = 0; i < liczbaWierzcholkow; i++)
- {
- if (lista[i].Count % 2 != 0)
- {
- Console.WriteLine("Graf nie posiada Cyklu Eulera!");
- return;
- }
- }
- Console.Write("Podaj wierzcholek startowy: ");
- wierzcholekStart = Convert.ToInt32(Console.ReadLine());
- Console.Write("Cykl Eulera: " + wierzcholekStart + " -> ");
- DFS(wierzcholekStart);
- for (int i = 0; i < liczbaKrawedzi; i++)
- {
- if (i != liczbaKrawedzi - 1)
- Console.Write(wynik.Last() + " -> ");
- else
- Console.WriteLine(wynik.Last());
- wynik.RemoveAt(wynik.Last());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement