Vorrangige Listen/Reihen
In einer vorrangigen Reihe/Liste werden eine Anzahl von Werten
gespeichert, jeder mit einer Priorität. Du kannst
die Werte mit der höchsten und niedrigsten Priorität
ermitteln. Durch das Verwenden dieser Datenstruktur
kannst du bestimmte Dinge, nach ihrer Wichtigkeit geordnet bearbeiten.
Folgende Funktionen existieren:
ds_priority_create() Erstellt eine neue
"priority queue". Die Funktion gibt einen ganzzahligen Wert wieder, der
als id fungiert, welche in allen anderen Funktionen verwendet werden
muss, um auf diese bestimmte "priority queue" zugreifen zu können.
ds_priority_destroy(id) Vernichtet die "priority
queue" mit der angegebenen id; dabei wird der belegte Speicher
freigegeben. Vergiss nicht diese Funktion aufzurufen, wenn die Struktur
nicht mehr brauchst.
ds_priority_clear(id) Löscht die "priority
queue" mit der angegebenen id; dabei werden alle Daten gelöscht
aber nicht die "priority queue" selber vernichtet.
ds_priority_size(id) Gibt die Anzahl der Werte
wieder, die in der "priority queue" gespeichert sind.
ds_priority_empty(id) Gibt wieder, ob die "priority
queue" leer ist. Dies ist dasgleiche wie testen, ob die
Größe 0 ist.
ds_priority_add(id,val,prio) Fügt einen Wert mit
der gegebenen Priorität zur "priority queue" hinzu.
ds_priority_change_priority(id,val,prio) Ändert
die Prioriät des angegebenen Wertes in der "priority queue".
ds_priority_find_priority(id,val) Gibt die
Priorität des angegebenen Wertes in der "priority queue" wieder.
ds_priority_delete_value(id,val) Löscht den
angegeben Wert (mit seiner Priorität) aus der "priority queue".
ds_priority_delete_min(id) Gibt den Wert mit der
kleinsten Priorität wieder und löscht diesen aus der
"priority queue".
ds_priority_find_min(id) Gibt den Wert mit der
kleinsten Priorität wieder aber löscht diesen nicht aus der
"priority queue".
ds_priority_delete_max(id) Gibt den Wert mit der
größten Priorität wieder und löscht diesen aus der
"priority queue".
ds_priority_find_max(id) Gibt den Wert mit der
größten Priorität wieder aber löscht diesen nicht
aus der "priority queue".