Ich kann keine externen Bibliotheken verwenden, also versuche ich mir einige Möglichkeiten zu überlegen, die Datenstruktur selbst zu erstellen. Ich dachte, vielleicht etwas in der Art:Wie kann ich einen gewichteten, gerichteten Graphen in Java darstellen?
public class Node{
Set<Edge> adjacent;
int value;
}
public class Edge{
Node target;
int weight;
}
Aber ich vermute, es gibt wahrscheinlich einen besseren Weg, es zu tun.
Mein eventueller Gebrauch für dieses Diagramm ist, den Bellman Ford-Algorithmus darauf auszuführen, aber ich brauche offensichtlich zuerst ein funktionierendes Diagramm!
Durch Arbeit besser meinst du nur, dass sie effizienter sind? – Hoser
@Hoser In den meisten Fällen lautet die Antwort "Ja". Spezialfälle wie Floyd-Warshall benötigen eine Matrix, um zu funktionieren. Sie können die Adjazenzlisten-Darstellung bis zu dem Punkt beibehalten, an dem Sie den Algorithmus ausführen, die Matrix erstellen, um sie auszuführen, und schließlich die Matrix zurück in eine Adjazenzliste konvertieren. – dasblinkenlight
In Ordnung danke. Was ist mit beiden davon, dass sie die Richtung unterstützen? Wird die Richtung tatsächlich durchgesetzt, oder muss ich das selbst regeln? – Hoser