Stacks
Du kennst dich jetzt bestens mit Datenstrukturen aus – aber was sind denn Stacks nun wieder? Das ist garnicht so schwer zu verstehen, wir erklären es dir in diesem Beitrag!
Inhaltsübersicht
Stacks als befüllbare Stapelspeicher
Der Stack ist genau, was der Name schon vermuten lässt: Ein Stapel. Du kannst ihn dir vorstellen wie einen Stapel Boxen, der auf einen LKW verladen werden soll. Im Moment liegen deine Boxen noch im Lager und sind leer. Nun müssen wir aber noch unsere Ware darin verpacken und sie dann verladen.
Funktion nach dem LIFO-Prinzip
Dazu schaffen wir sie erst einmal auf eine Palette und stapeln sie dort. Dieser Stapel ist der Stack und unsere Kartons sind die Funktionen unseres Programms. Immer, wenn wir nun eine Kiste auf die andere stapeln, verlieren wir den Zugriff zur vorherigen und können erst wieder auf diese zugreifen, wenn wir die darauf liegende herunternehmen. Diesen Umstand nennt man das Last-in-First-Out Prinzip.
Stacks Optionen
Auf unsere Kartons bezogen haben wir, sobald sie auf unserem Stapel liegen, also folgende Optionen:
push, bei der wir eine neue Kiste oben auflegen, pop, bei der wir die oberste Kiste befüllen und verladen und top, bei der wir nur überprüfen, ob die oberste Kiste bereits befüllt ist.
Auf unsere C-Programme übertragen heißt das also: Wer zuletzt kommt, malt zuerst! Die Funktion, die als letztes aufgerufen wurde, wird zuerst abgearbeitet, eventuell deren Rückgabewert zurückgegeben und dann „gelöscht“. Erst dann wird die zuvor aufgerufene Funktion verarbeitet.
Organisieren von Werten mithilfe von Stacks
Stacks verwalten aber nicht nur Funktionen. Du kannst in C auch Werte auf diese Weise organisieren. Du kannst einen Stack nämlich recht simpel als einfach verkettete Liste oder als dynamisches Array verwirklichen.
Als Letztes solltest du noch eines wissen: Manche Professoren verwenden für diese Strukturen auch gern einmal den alten, deutschen Fachbegriff. Dann kennst du diese Struktur unter dem Namen: Kellerspeicher.
Jetzt weißt du wie du Werte mithilfe von Stacks organisieren kannst und welche Operationen es gibt.