Startseite    
MathematikPoolNRW Projekt Hintergründe Kontakt


Datenstrukturen

Für die Implementierung des Dijkstra-Algorithmus benötigen wir Datenstrukturen, um den Graphen, die Distanz Dist(v) und den Vorgänger Vor(v) eines Knotens sowie die Front (Menge U) effizient zu verwalten.

Der Graph kann z.B. in einer Adjazenzliste Tail [1, ..., n] abgespeichert werden: Tail(i) zeigt auf den Beginn einer verketteten Liste, die die Endknoten j und Kosten von Kanten (i, j) in E enthält.

Die Distanz und der Vorgänger eines Knotens können in Felder Dist[1 ... n] und Vor[1 ... n] abgelegt werden.

Die Verwaltung der Front verlangt eine Datenstruktur, die die folgenden Operationen unterstützt.

  • finde Minimum
  • lösche Minimum
  • füge ein
  • verringere Inhalt eines gegebenen Elements.
Hier gibt es viele verschiedene Möglichkeiten. Wir wollen nun einige vorstellen und zeigen, wie sich ihre Verwendung auf die Laufzeit auswirkt.