Najkrótsza ścieżka w grafie, współrzędne jako punkty

0

Witam, mam zrobić program szukający najkrótszej ścieżki w grafie za pomocą algorytmu Dijkstra.
Program ma pobierać od użytkownika n wierzchołków w formie współrzędnych x,y i następnie od wybranego punktu wyświetlić najkrótsze ścieżki do pozostałych.

Praktycznie nie programuje i możliwe, że moje pytania będą łatwe, ale nie znalazłem odpowiedzi w internecie.

  1. W jaki sposób najprościej pobrać dane jako dwie współrzędne, by zbudować z nich graf? Wystarczy zrobić dwie tablice jedna dla x druga y?

  2. Jakie będą wagi? Będą nimi odległości między punktami ze wzoru sort(x2-x1)^2+(y2-y1)^2?

1

Ad. 1. Zmapuj sobie jakoś, te współrzedne na wierzchołki, pierwsza para -> wierzchołek 1, itd..
Ad. 2. Algorytm nie obchodzi co znaczą wagi, ale jeśli chodzi o znalezienie najkrótszej odległości, to dobrałbym wagi zgodnie z odległościa euklidesową.

0
sebastian kozyra napisał(a):

Witam, mam zrobić program szukający najkrótszej ścieżki w grafie za pomocą algorytmu Dijkstra.

Program ma pobierać od użytkownika n wierzchołków w formie współrzędnych x,y i następnie od wybranego punktu wyświetlić najkrótsze ścieżki do pozostałych.

Coś te zadanie wygląda na niekompletne.
Brak wyraźnej definicji dostępnych krawędzi. Zakładam, że waga krawędzi jest wyznaczoną odległością euklidesową.
Jeśli krawędzie są dostępne miedzy wyszkimi parami punktów to wtedy najkrótsza droga to skok bezpośredni i użycie Dijkstra traci sens.

I jeszcze standardowe: a co sam już zrobiłeś?

0

TUTAJ możesz przejrzeć gotowe rozwiązanie z wytłumaczeniem całego kodu. Przejrzyj, spróbuj napisać coś sam i wtedy zobaczymy, z czym rzeczywiście będziesz miał kłopot

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