Cześć
Jak zaimplementować sam graf w javie. Bez wyszukiwań itp. Sam graf jak z wartościami i połączeniemi z innymi wierzchołkami. Bo jakos nie mam pomysłu jak takie cos wykonać.
Znamy 3 głównie struktury danych do przechowywania grafu:
- macierz incydencji
- macierz adiacencji / sąsiedztwa
- listę sąsiedztwa
Wybierz jedną i zaimplementuj.
Cholera całkowicie nie czuję tematu.
Odnośnie macierzy incydencji to miał bym jako nową klasę to robić a w niej jakąś listę? I dać namiar że np 1 ma krawędź do 2 a 2 do 1 .... a 2 do 3 i 3 do 2. Coś w tym stylu?
Macierz incydencji to jest po prostu tablica VxE, nic więcej.
Czyli jeśli mam takie należności że 1 ma krawędź do 5,3 a 5ma do 3 a 3 do 5
to mam macierz 3x3 tak wyglądającej
1 5 3
5 1 3
3 2 1
przyjmując że pierwsza kolumna to wierzchołki a reszta wiersza to krawędzie prowadzące do poszczególnych wierzchołków?
Ale w takim rozumowaniu jak moim to teraz jak bym chciał np BFS zrobić to już totalnie nie wiem jak.
Nie to co napisałeś to jakiś bełkot ;]
Macierz incydencji:
A 1 0 0
B 1 0 1
C 0 1 1
D 0 1 0
Taka macierz oznacza że mamy krawędzie między A i B, C i D oraz B i C
Macierz sąsiedztwa
A B C D
A 1
B 1 1
C 1 1
D 1
To napisz sobie to na liście sąsiedztwa jak masz problem ;] Taka lista to jest
Map<Node,List<Node>>
Gdzie mapujemy sobie Wierzchołek grafu na listę wierzchołków z którymi jest bezpośrednio polaczony.
Oj męczę się z tym strasznie. Jak w ogóle do klucza się odwołać w mapie i coś na nim podziałaś sprawdzić jakieś wartości itp??
A pokaż jak próbujesz to zrobić.