Advertisement
Guest User

Untitled

a guest
Mar 17th, 2020
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.78 KB | None | 0 0
  1. private int liczbaWierzcholkow;
  2.         private int liczbaKrawedzi;
  3.         public List<int>[] lista = new List<int>[10];              //lista sasiedztwa
  4.  
  5.         private int[,] przebyty = new int[10,10];           // Przebyte wierzcholki
  6.     public List<int> wynik = new List<int>();           // Kolejne wierzcholki w cylku
  7.         private int wierzcholekStart;
  8.  
  9.  
  10.  
  11. public void DFS(int v)
  12.         {
  13.             for (int i = 0; i < liczbaWierzcholkow; i++)
  14.                 lista[i] = new List<int>();
  15.  
  16.             while (lista[v].Count!=0)
  17.             {
  18.                 int w = lista[v].Last();
  19.                 lista[v].RemoveAt(w);
  20.                 if (przebyty[v,w] == 0)
  21.                 {
  22.                     przebyty[v,w] = 1;
  23.                     przebyty[w,v] = 1;
  24.                     DFS(w);
  25.                     wynik.Add(w);
  26.                 }
  27.             }
  28.         }
  29.  
  30.         public void cyklEulera(Graf wczytajGraf)
  31.         {
  32.             wczytajGraf = new Graf();
  33.  
  34.             for (int i = 0; i < liczbaWierzcholkow; i++)
  35.             {
  36.                 if (lista[i].Count % 2 != 0)
  37.                 {
  38.                     Console.WriteLine("Graf nie posiada Cyklu Eulera!");
  39.                   return;
  40.                 }
  41.             }
  42.  
  43.             Console.Write("Podaj wierzcholek startowy: ");
  44.             wierzcholekStart = Convert.ToInt32(Console.ReadLine());
  45.             Console.Write("Cykl Eulera: " + wierzcholekStart + " -> ");
  46.             DFS(wierzcholekStart);
  47.  
  48.             for (int i = 0; i < liczbaKrawedzi; i++)
  49.             {
  50.                 if (i != liczbaKrawedzi - 1)
  51.                     Console.Write(wynik.Last() + " -> ");
  52.                 else
  53.                     Console.WriteLine(wynik.Last());
  54.  
  55.                 wynik.RemoveAt(wynik.Last());
  56.             }
  57.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement