Implementacja grafu

0

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ć.

0

Znamy 3 głównie struktury danych do przechowywania grafu:

  • macierz incydencji
  • macierz adiacencji / sąsiedztwa
  • listę sąsiedztwa
    Wybierz jedną i zaimplementuj.
0

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?

0

Macierz incydencji to jest po prostu tablica VxE, nic więcej.

0

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.

0

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.

0

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??

0

A pokaż jak próbujesz to zrobić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1