static void Main(string[] args) { int from = 1, to = 1; Siec siec = new Siec(); string filename; do { Console.WriteLine("Podaj nazwe pliku z katalogu data:"); filename = Console.ReadLine(); Console.Clear(); Console.WriteLine("Plik nie istnieje"); } while (!(siec.Wczytaj(filename))); siec.Mst(); Console.Clear(); do { Console.WriteLine("Podaj początek i koniec poszukiwanej ścieżki (max {0}), aby wyjść podaj 0", siec.Get_wezels()); try { Console.WriteLine("Podaj początek:"); from = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Podaj koniec:"); to = Convert.ToInt32(Console.ReadLine()); } catch (FormatException e) { Console.Clear(); Console.WriteLine("Niepoprawny format danych"); continue; } Console.Clear(); if (from > 0 && from <= siec.Get_wezels() && to > 0 && to <= siec.Get_wezels()) { siec.Dijkstra(from, to); } else { Console.WriteLine("Wyjście poza zakres"); } } while (from != 0 && to != 0); Console.Clear(); Console.WriteLine("fin."); Console.ReadLine(); }
/// <summary> /// Konstruktor kopiujący /// </summary> /// <param name="siec"></param> public Siec(Siec siec) { this.liczbaWezlow = siec.liczbaWezlow; this.liczbaLaczy = siec.liczbaLaczy; this.liczbaKabli = siec.liczbaKabli; this.algorytm = siec.algorytm; this.centrala = siec.centrala; wezly = new List <Wezel>(siec.wezly); krawedzie = new List <Lacze>(siec.krawedzie); sciezki = new List <Sciezka>(siec.sciezki); tablicaMST = new List <int>(siec.tablicaMST); this.tablicaKierowaniaWezlami = siec.tablicaKierowaniaWezlami; this.tablicaKierowaniaLaczami = siec.tablicaKierowaniaLaczami; this.tablicaKosztow = siec.tablicaKosztow; this.suma = siec.suma; this.usunieteKrawedzie = new List <Lacze>(siec.usunieteKrawedzie); this.brakPowodzenia = siec.brakPowodzenia; ustawPoczatkoweKoszty = siec.ustawPoczatkoweKoszty; }
/// <summary> /// Wyznacza sciezke z Skad do Dokad o pasmie band i czestotliwosci frequency. Wpisuje band i frequency! /// </summary> /// <param name="Skad"></param> /// <param name="Dokad"></param> /// <param name="band"></param> /// <param name="frequency"></param> /// <param name="network">Sieć, zawierająca tablice kierowania węzłami, łączami, kosztów.</param> /// <returns></returns> public List <Lacze> wyznaczSciezke(Wezel Skad, Wezel Dokad, short band, short frequency, Siec network) { var path = wyznaczSciezke(Skad, Dokad, network.zwrocTabliceKierowaniaLaczami, network.zwrocTabliceKierowaniaWezlami, ref network.wezly, band, network.Koszty, frequency); //Wpisanie wartosci czetotliwosci i pasma do sciezki if (path != null && path.Count != 0) { this.band = band; this.frequency = frequency; } return(path); }