Stacks
Ein Stapel ist ein Container von Objekten, die nach dem Last-in-first-out (LIFO) Prinzip eingesetzt und entfernt wird. In den Pushdown-Stacks sind nur zwei Operationen erlaubt: push
das Item in den Stack und pop
das Item aus dem Stack. Ein Stack ist eine Datenstruktur mit eingeschränktem Zugriff - Elemente können nur oben hinzugefügt und aus dem Stack entfernt werden. push fügt ein Element zum Anfang des Stapels hinzu, pop entfernt das Element von oben. Eine hilfreiche Analogie ist, an einen Stapel Bücher zu denken; Sie können nur das oberste Buch entfernen, auch können Sie oben ein neues Buch hinzufügen.
Queues
Eine Warteschlange ist ein Container von Objekten (eine lineare Sammlung), die eingefügt und entfernt werden nach dem First-in-first-out (FIFO) -Prinzip. Ein hervorragendes Beispiel für eine Warteschlange ist eine Reihe von Studenten im Food Court der UC. Neue Hinzufügungen zu einer Zeile, die an der Rückseite der Warteschlange vorgenommen wird, während das Entfernen (oder Serving) an der Vorderseite erfolgt. In der Warteschlange sind nur zwei Operationen zulässig: enqueue
und dequeue
. Enqueue bedeutet, ein Element in den hinteren Bereich der Warteschlange einzufügen, das Herausziehen bedeutet, das vordere Element zu entfernen.
jetzt zum Punkt: Im Allgemeinen können Sie nicht löschen oder die Daten (Knoten) dazwischen einfügen. Dieses Merkmal ist in beiden Datenstrukturen anwendbar. Meiner Meinung nach könnte dies einer der Gründe sein.
Ein Stapel kann als "Last-In, First-Out" -Warteschlange betrachtet werden. Die Aufforderung, etwas zu "beweisen", legt jedoch nahe, dass ein Stapel und eine Warteschlange streng definiert sind. Ist das der Fall? – Codor
Nein, es ist nicht wirklich erforderlich, die Aussage rigoros zu definieren. Jede Art von Erklärung, die den Stapel zeigt, kann betrachtet werden, da die Warteschlange akzeptabel ist. – Hridoy