public void zlacz(Wierzcholek pierwszy, Wierzcholek drugi) { try { listaSas[pobierzIndeks(pierwszy)].dodajNaKoncu(drugi); listaSas[pobierzIndeks(drugi)].dodajNaPoczatku(pierwszy); } catch (ExceptionBrakKlucza) { Console.WriteLine("nie takich wierzcholkow do polaczenia"); } }
public void zlacz(Wierzcholek pierwszy, Wierzcholek drugi) { try { macierz[pobierzIndeks(pierwszy)][pobierzIndeks(drugi)] = 1; macierz[pobierzIndeks(drugi)][pobierzIndeks(pierwszy)] = 1; } catch (ExceptionBrakKlucza) { Console.WriteLine("nie takich wierzcholkow do polaczenia"); } }
//metody interfejsu public void dodaj(Wierzcholek nowyWierzcholek) { if (indeksWierzcholka < 10) { indeksyWierzcholkow[indeksWierzcholka] = nowyWierzcholek; indeksWierzcholka++; } else { Console.WriteLine("Maksimum wierzcholkow osiągniete!"); } }
static void Main(string[] args) { MacierzSasiedztwa dupa = new MacierzSasiedztwa(); Graf grafix = new Graf(dupa); Wierzcholek pierwszy = new Wierzcholek("Dupszot"); Wierzcholek drugi = new Wierzcholek("kumkat"); Wierzcholek trzeci = new Wierzcholek("łai kai"); Wierzcholek czwarty = new Wierzcholek("marcinero zjebus"); Wierzcholek piaty = new Wierzcholek("runumskie dzieci slonca"); Wierzcholek szosty = new Wierzcholek("karakaniec"); Wierzcholek siodmy = new Wierzcholek("mrau"); Wierzcholek osmy = new Wierzcholek("hefajstos"); Wierzcholek dziewiaty = new Wierzcholek("Andrzej"); grafix.dodaj(dziewiaty); grafix.dodaj(osmy); grafix.dodaj(siodmy); grafix.dodaj(pierwszy); grafix.dodaj(czwarty); grafix.dodaj(szosty); grafix.dodaj(drugi); grafix.dodaj(trzeci); grafix.dodaj(piaty); grafix.zlacz(pierwszy, drugi); grafix.zlacz(drugi, czwarty); grafix.zlacz(piaty, drugi); grafix.zlacz(czwarty, szosty); grafix.zlacz(szosty, siodmy); grafix.zlacz(siodmy, dziewiaty); grafix.zlacz(dziewiaty, osmy); int start, stop; start = Environment.TickCount & Int32.MaxValue; //jakaś pętla czy inne operacje WyszukiwanieSciezki szukajka = new WyszukiwanieSciezki(grafix); szukajka.wyszukajSciezke("Dupszot", "Andrzej"); stop = Environment.TickCount & Int32.MaxValue; Console.WriteLine("Czas pracy: " + (stop - start)); Console.ReadLine(); }
public Krawedz(Wierzcholek pierwszy, Wierzcholek drugi) { this.pierwszy = pierwszy; this.drugi = drugi; }
public Lista<Wierzcholek> zwrocSasiadow(Wierzcholek wierzcholek) { return reprezentacja.zwrocSasiadow(wierzcholek); }
public void zlacz(Wierzcholek pierwszy, Wierzcholek drugi) { reprezentacja.zlacz(pierwszy, drugi); }
public void dodaj(Wierzcholek nowy) { reprezentacja.dodaj(nowy); }
//metody interfejsu do wyszukiwania public Lista<Wierzcholek> zwrocSasiadow(Wierzcholek wierzcholek) { return listaSas[pobierzIndeks(wierzcholek)]; }
// zarzadzanie indeksami-wierzcholkami, coby sie nie pomieszac private int pobierzIndeks(Wierzcholek wierzcholek) { for (int i = 0; i < indeksWierzcholka; i++) { if (indeksyWierzcholkow[i].nazwa == wierzcholek.nazwa) { return i; } } throw new ExceptionBrakKlucza(); }
// Interfejs, przeszukiwanie: public Lista<Wierzcholek> zwrocSasiadow(Wierzcholek wierzcholek) { Lista<Wierzcholek> listaSasiadow = new Lista<Wierzcholek>(); for (int i = 0; i < 10; i++) { if (macierz[pobierzIndeks(wierzcholek)][i] == 1) { listaSasiadow.dodajNaKoncu(pobierzWierzcholek(i)); } } return listaSasiadow; }