Contents
Stack ist ein abstrakter Datentyp, der als Sammlung von Elementen mit zwei Hauptoperationen dient: PUSH, der der Sammlung ein Element hinzufügt, und POP, der das zuletzt hinzugefügte Element entfernt, das noch nicht entfernt wurde.
Im Allgemeinen basieren Stacks auf dem Last In First Out (LIFO)-Prinzip, dh das als letztes eingefügte Element ist das erste Element, das aus der Liste herauskommt. Stapel wird Stapel genannt, weil er sich wie ein Stapel in der realen Welt verhält, zum Beispiel ein Kartenspiel oder ein Stapel von Platten, Gegenständen usw. Jedes Mal, wenn ein Element hinzugefügt wird, kommt es oben auf den Stapel und ist das einzige Element, das sein kann entfernt ist das Element, das sich ganz oben auf dem Stapel befindet.
Um einen Stapel effizient zu verwenden, müssen wir auch den Status des Stapels überprüfen. Aus dem gleichen Grund wird den Stacks die folgende Funktionalität hinzugefügt:
Anwendung des Stapels
Genau wie Stack ist Queue ein abstrakter Datentyp oder eine lineare Datenstruktur, bei der das erste Element von einem Ende namens REAR (auch Tail genannt) eingefügt wird und das Entfernen des vorhandenen Elements vom anderen Ende namens FRONT erfolgt (auch Kopf genannt).
Queues sind im Allgemeinen Datenstrukturen, die auf dem First In First Out (FIFO)-Prinzip basieren, dh das zuerst eingefügte Element ist das erste Element, das aus der Liste kommt. Genau so funktioniert das Warteschlangensystem in der realen Welt. Wenn Sie beispielsweise in Ihrem Lieblingslebensmittelgeschäft in der Schlange warten, verlässt der erste in der Schlange als erster das Geschäft, wobei neue Personen am Ende der Warteschlange hinzugefügt werden.
Das Hinzufügen eines Elements zur Warteschlange wird als Enqueue bezeichnet, während das Entfernen eines Elements aus der Warteschlange als Dequeue bezeichnet wird.
Anwendungen der Warteschlange
Lesen Sie auch: Unterschied zwischen Array- und verknüpften Listendatenstrukturen
Lesen Sie auch: Unterschied zwischen Baum- und Diagrammdatenstruktur
VERGLEICHSGRUNDLAGE | STAPEL | WARTESCHLANGE |
Funktionsprinzip | Stacks basieren auf dem Last In First Out (LIFO)-Prinzip, dh das als letztes eingefügte Element ist das erste Element, das aus der Liste kommt. | Queues sind Datenstrukturen nach dem First In First Out (FIFO)-Prinzip, dh das als erstes eingefügte Element kommt als erstes aus der Liste. |
Einfügen & Löschen | Das Einfügen und Löschen in Stapeln erfolgt nur von einem Ende der Liste nach oben. | Das Einfügen und Löschen in Warteschlangen erfolgt von den gegenüberliegenden Enden der Liste. |
Referenzzeiger | Ein Stack benötigt nur einen Referenzzeiger, den sogenannten Top-Zeiger, der immer auf das letzte in der Liste vorhandene Element zeigt. | Eine Warteschlange erfordert zwei Referenzzeiger, die als FRONT- und REAR-Zeiger bezeichnet werden. |
Flaggen | In Stapeln wird nur ein Flag für den Zugriff auf die Liste verwaltet, das immer auf das letzte in der Liste vorhandene Element zeigt. | In den Warteschlangen werden zwei Flags gepflegt, um auf die Liste zuzugreifen. |
Betrieb | Im Stack werden Operationen als PUSH und POP bezeichnet. Der Push-Vorgang fügt dem Stack einen Vorgang hinzu, während der POP-Vorgang ein Element im Stack entfernt. | In der Warteschlange werden Operationen als Enqueue und Dequeue bezeichnet. Der Enqueue-Vorgang fügt einen Vorgang in die Warteschlange ein, während Dequeue ein Element aus der Warteschlange entfernt. |
Erweiterungen | Ein Stapel kann nicht in Unterabschnitte unterteilt werden und hat keine Erweiterungen. | Eine Queue kann in Unterabschnitte mit den folgenden Erweiterungen unterteilt werden: Circle Queue, Priority Queue, Double Ended Queue und Simple Queue. |
Natur | Eine Stapeldatenstruktur ist nicht unbedingt eine geordnete Sammlung von Datenelementen. | Eine Warteschlangen-Datenstruktur ist eine geordnete Sammlung von Datenelementen. |
Einfügen eines Elements | Die Elemente, die am meisten und am wenigsten zugänglich sind, werden als TOP und BOTTOM des Stapels bezeichnet. | Das Einfügen eines Elements erfolgt am FRONT-Ende und das Löschen erfolgt am REAR-Ende. |
Prüfen, ob ein Stapel oder eine Warteschlange leer ist | Um zu prüfen, ob ein Stack leer ist, wird folgende Bedingung verwendet: TOP==-1 . | Um zu prüfen, ob eine Warteschlange leer ist, wird die folgende Bedingung verwendet: FRONT==-1|| VORNE ==HINTEN+1. |
Prüfen, ob ein Stapel oder eine Warteschlange voll ist | Um zu prüfen, ob ein Stack voll ist, wird folgende Bedingung verwendet: TOP==MAX-1. | Um zu prüfen, ob eine Warteschlange voll ist, wird die folgende Bedingung verwendet: REAR==MAX-1. |
Aufgabenplanung | Die Aufgabenplanung durch das Betriebssystem verwendet eine Warteschlange oder ein Systeminterrupt ist ein gutes Beispiel für die Verwendung des Warteschlangenmechanismus. | Die Aufgabenplanung nach der vom Betriebssystem verwendeten Warteschlange oder der Art und Weise, wie rekursive Systemaufrufe funktionieren, verwendet Stack-Mechanismen. |
Anwendung | Stack wird bei der Infix-zu-Postfix-Konvertierung, bei Planungsalgorithmen, bei der Tiefensuche und bei der Auswertung eines Ausdrucks verwendet. | Eine Warteschlange bietet Dienste in Operations Research, Transportwesen und Informatik an, bei denen es um Personen, Daten, Ereignisse und Gegenstände geht, die zur späteren Verarbeitung gespeichert werden sollen. |
Lesen Sie auch: Unterschied zwischen linearen und nichtlinearen Datenstrukturen
Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…
Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…
In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…
Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…
Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…
Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…