Queues - Reihen
Ein queue (Reihe) ist sowas ähnliches, wie ein stack (Stapel) aber
arbeitet nach dem FIFO
(First-In First-Out) Prinzip (Zuerst rein - zuerst raus). Der Wert, der
zuerst in den queue
gegeben wird, wird auch als erster wieder entnommen. Es funktioniert
ähnlich wie eine Warteschlange
an der Supermarktkasse. Die Person, die ganz vorne steht, wird zuerst
bedient.
Queues werden gewöhnlich verwendet, um Dinge zu speichern, die
noch bearbeitet werden werden müssen
aber es gibt noch viele andere Verwendungszwecke. Die folgenden
Funktionen gibt es (Beachte,
dass die ersten fünf äquivalent zu den stack-Funktionen sind;
alle Datenstrukturen besitzen diese 5 Funktionen).
ds_queue_create() Erstellt eine neue
queue. Die Funktion liefert eine ganze Zahl als id zurück, welche
fortan verwendet werden muss, um auf aus anderen Funktionen auf diese
queue zuzugreifen. Du kannst mehrere queues erstellen.
ds_queue_destroy(id) Vernichtet die queue mit der
angegebenen id und gibt den belegten Speicher frei. Vergiss nicht,
diese Funktion aufzurufen, wenn du die Struktur nicht mehr
benötigst.
ds_queue_clear(id) Löscht die queue mit der
angegebenen id. Alle Daten werden daraus entfernt aber die Struktur
bleibt erhalten.
ds_queue_size(id) Gibt die Anzahl der gespeicherten
Werte wieder, die in der queue gespeichert sind.
ds_queue_empty(id) Gibt an, ob die queue leer ist.
Das ist das Gleiche, wie prüfen auf Größe 0.
ds_queue_enqueue(id,val) Schiebt einen Wert in die
queue.
ds_queue_dequeue(id) Gibt den Wert an, der am
längsten in der queue steht und entfernt ihn daraus.
ds_queue_head(id) Gibt den Wert an, der am Anfang der
queue steht, daß ist der Wert, welcher am längsten in der
queue ist. > (Der Wert wird nicht enfernt.)
ds_queue_tail(id) Gibt den Wert am Ende der queue
wieder, das ist der Wert, der zuletzt hinzugefügt wurde.
> (Der Wert wird nicht entfernt.)