2016-07-11 5 views
1

Ich habe vor kurzem eine Aufgabe, wo eins des Problems istStack ist eine Art von Warteschlange

"Beweisen, dass Stapel ist eine Art der Warteschlange".

Ich habe bereits in Foren und beliebten Suchmaschinen zu diesem Thema gesucht. Ich konnte jedoch keine verwandten Informationen finden. Ist es wirklich wahr, dass Stack eine Art von Warteschlange ist? Wenn das so ist, wie?

+0

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

+0

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

Antwort

4

Ein Stapel kann folgendermaßen implementiert werden: priority queue. Wenn ein Element auf den Stack geschoben wird, erhält es eine Priorität, die als die Anzahl der Elemente definiert ist, die sich bereits in der Prioritätswarteschlange befinden, wodurch sichergestellt wird, dass es die höchste Priorität hat; Um ein Element zu knacken, nehmen Sie das mit der höchsten Priorität. Insgesamt bedeutet dies, dass ein Stack als Sonderfall einer Prioritätswarteschlange angesehen werden kann.

1

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.