Hallo,
da ich in ein paar Wochen eine Klausur über Algorithmen und Datenstrukturen schreiben muß habe ich mich gestern daran versucht den Algorithmen von Dijkstra zu implementieren....und bin daran ziemlich erfolgreich gescheitert.
Ich hatte gestern in erster Linie das Problem gehabt das die gefundenen Knoten laut Algorithmusbeschreibung in einer Prioritäts-Warteschlange abgelegt werden sollen. Dazu hatte ich mir nun überlegt das ich eine Klasse anlege die nur die Variablen "Quellknoten", "Zielknoten" sowie "Kosten" enthält (sowie die entsprechenden setter- und getter-Methoden).
Da Java glücklicherweise bereits die Datenstruktur PriorityQueue zur Verfügung stellt wollte ich diese eigentlich nutzen, was für mich zu dem Problem führt das ich nicht weiß wie ich Java beibringen kann die Objekte nach ihren Kosten in die Queue einzusortieren. Ich hatte bereits gelesen das für die Vergleiche die Objekte Comparable sein müssen, aber wie bringe ich nun Java dazu die Knoten anhand ihrer Kosten zu vergleichen? (vielleicht kann mir ja jemand ein minimales beispiel dafür zeigen?)
Ich hoffe ich konnte einigermaßen logisch erklären was mein Problem ist. Kurz zusammen gefaßt möchte ich Objete in eine PriorityQueue einsortieren und dieses anhand einer Variable.
Ich hatte mir zwar bereits überlegt meine eiene Queue zu schreiben aber ich möchte gerne das programm nicht weiter aufblähen als umbedingt nötig und wäre daher über eine entsprechende Antwort sehr dankbar.
viele Grüsse
Dan
da ich in ein paar Wochen eine Klausur über Algorithmen und Datenstrukturen schreiben muß habe ich mich gestern daran versucht den Algorithmen von Dijkstra zu implementieren....und bin daran ziemlich erfolgreich gescheitert.
Ich hatte gestern in erster Linie das Problem gehabt das die gefundenen Knoten laut Algorithmusbeschreibung in einer Prioritäts-Warteschlange abgelegt werden sollen. Dazu hatte ich mir nun überlegt das ich eine Klasse anlege die nur die Variablen "Quellknoten", "Zielknoten" sowie "Kosten" enthält (sowie die entsprechenden setter- und getter-Methoden).
Da Java glücklicherweise bereits die Datenstruktur PriorityQueue zur Verfügung stellt wollte ich diese eigentlich nutzen, was für mich zu dem Problem führt das ich nicht weiß wie ich Java beibringen kann die Objekte nach ihren Kosten in die Queue einzusortieren. Ich hatte bereits gelesen das für die Vergleiche die Objekte Comparable sein müssen, aber wie bringe ich nun Java dazu die Knoten anhand ihrer Kosten zu vergleichen? (vielleicht kann mir ja jemand ein minimales beispiel dafür zeigen?)
Ich hoffe ich konnte einigermaßen logisch erklären was mein Problem ist. Kurz zusammen gefaßt möchte ich Objete in eine PriorityQueue einsortieren und dieses anhand einer Variable.
Ich hatte mir zwar bereits überlegt meine eiene Queue zu schreiben aber ich möchte gerne das programm nicht weiter aufblähen als umbedingt nötig und wäre daher über eine entsprechende Antwort sehr dankbar.
viele Grüsse
Dan