Listy sąsiedztwa a implementacja grafów

0

Witam, mam problem z implementacją grafów za pomocą list sąsiedztwa w C++ na potrzeby algorytmu Dijkstry. Mianowicie, wszystkie pomoce jakie udało mi się znaleźć w sieci rozpatrują przypadek w którym kolejne węzły grafu są liczbami, ja natomiast potrzebuje zrobić to na stringach(bądź jakimś innym typie przechowującym ciągi znaków). Mój program będzie wyznaczał najkrótszą drogę między węzłem startowym a węzłem końcowym oraz wyświetlał przejście po wszystkich kolejnych węzłach i sumował wagi tego przejścia. Czy ktoś miał styczność z taką implementacją grafu, bądź ma jakiś pomysł na nią i mógłby mnie pokierować? Rzecz jasna nie oczekuję gotowego kodu, ale będę wdzięczny za każdą wskazówkę.

Przykładowe dane do grafu:
Bruksela Paryż 2000
Koso Kijow 3100

0
lion137 napisał(a):

Tu jest opis i kod C++ http://www.geeksforgeeks.org/greedy-algorithms-set-6-dijkstras-shortest-path-algorithm/

No właśnie tutaj węzły są liczbami a ja potrzebuje żeby to były nazwy miast

0

Zwykle robisz sobie dodatkowa mapę nazwa -> ID numeryczne (lub odwrotnie) i po kłopocie.
ID numeryczne to nr węzła wg np. kolejności definicji.

0
vpiotr napisał(a):

Zwykle robisz sobie dodatkowa mapę nazwa -> ID numeryczne (lub odwrotnie) i po kłopocie.
ID numeryczne to nr węzła wg np. kolejności definicji.

Rozumiem że muszę to zrobić za pomocą wskaźników ?
A jeszcze jedno, jak sprawdzić czy dana miejscowość już się powtórzyła a jeśli tak to żeby potraktowalo nowa trasę jako kolejną galez węzła a nie nowy węzeł.
Chodzi mi np o taka sytuacja
Kraków Katowice 100
Szczecin Gdańsk 200
Kraków Warszawa 200

I żeby ten pierwszy Kraków był tym samym węzłem co ten na trzeciej trasie a nie nowym Id?

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