====== 2.4 Stapel/Warteschlange ====== ===== Stack (Stapel) ===== Ein Stack (auf deutsch "Stapel" oder "Kellerspeicher") ist eine Liste, in die Elemente am vorderen Ende eingefügt und aus der Elemente am vorderen Ende wieder entnommen werden können. Man spricht vom **LIFO-Prinzip** (//last in, first out//): Das Element, das als letztes hinzugefügt wurde, wird als erstes wieder entnommen. \\ Die Methode zum Einfügen in den Stack {{ :listen:queuestack:stack.svg?300 |}} Aufgabe: Schreiben Sie eine Klasse ''Stack'', die mit Hilfe einer verketteten Liste einen Stapel implementiert und insbesondere die Methoden ''push'', ''pop'' und ''isEmpty'' besitzt. Auf dem Stapel sollen ''String''-Objekte abgelegt werden können. \\ Verwenden Sie dabei das Entwurfsmuster Kompositum und achten Sie auf die Trennung von Struktur und Daten! \\ \\ [[.stackloesung:start|Lösung]] ===== Queue (Warteschlange)===== Eine Queue (auf deutsch "Warteschlange") ist eine Liste, in die Elemente am hinteren Ende eingefügt und aus der Elemente am vorderen Ende wieder entnommen werden können. Man spricht vom **FIFO-Prinzip** (//first in, first out//): Das Element, das als letztes hinzugefügt wurde, wird als erstes wieder entnommen. \\ {{ :listen:queuestack:queue.svg?300 |}}