Stacks - Stapel
Eine Stapel-Datenstruktur wird auch LIFO ("Last-In First-Out" zuletzt
rein - zuerst raus)Struktur genannt. Du kannst
Werte auf einen Stapel legen und sie wieder, durch runterziehen vom
Stapel, entfernen.
Der Wert, welcher als letzter auf den Stapel gelegt wurde, ist auch
derjenige, der zuerst wieder entnommen wird.
Stacks (Stapel) werden oft verwendet, wenn man "interrupts"
(Unterbrechungen) behandelt oder rekursive Funktionen.
Die folgenden Funktionen existieren für stacks (Stapel):
ds_stack_create() Erstellt einen neuen
stack. Die Funktion liefert eine ganze Zahl als Rückgabewert,
welche fortan als id verwendet werden muss, um aus anderen Funktionen
auf diesen speziellen stack zugreifen zu können. Du kannst mehrere
stacks erstellen.
ds_stack_destroy(id) Vernichtet den stack mit der
angegebenen id und gibt den belegten Speicher wieder frei. Vergiss
nicht diese Funktion aufzurufen, wenn du die Struktur nicht mehr
benötigst.
ds_stack_clear(id) Löscht den stack mit der
angegebenen id, d.h. alle Daten werden entfernt, die Struktur bleibt
aber erhalten.
ds_stack_size(id) Gibt die Anzahl der im stack
abgelegten Werte wieder.
ds_stack_empty(id) Gibt an, ob der stack leer ist.
Das ist das gleiche, wie prüfen auf Größe 0.
ds_stack_push(id,val) Legt einen Wert auf den stack.
ds_stack_pop(id) Ermittelt den Wert, der zuoberst auf
dem stack liegt und entfernt ihn vom stack.
ds_stack_top(id) Ermittelt den Wert, der zuoberst auf
dem stack liegt - ohne ihn zu entfernen.