Elemente werden häufig von hinten hinzugefügt und in einer normalen Warteschlange von vorne entfernt. Im Gegensatz dazu können wir die Komponenten von vorne und hinten eines Deque hinzufügen und entfernen. Die Implementierung eines Deque in C ++ kann entweder mit einem Array oder einer verknüpften Liste erfolgen.
Unten finden Sie eine Liste der Array -Implementierung des Deque. Wir haben die kreisförmigen Arrays verwendet, um sie zu implementieren, weil es sich um eine Doppel-Warteschlange handelt. Die Doppel-Warteschlange ist schneller und effizienter als jede andere Warteschlange, wenn es darum geht, die Komponenten von beiden Enden hinzuzufügen und zu entfernen.
Deques Darstellung
Zu den zeitaufwändigen Aspekten der Durchführung verschiedener Deque-Prozesse gehören:
Arten von Deque
Schauen wir uns die Typen im Zusammenhang mit Deque in C an++.
Eingabe eingeschränkter Deque
Die Eingabe ist an einem Ende eingesperrt, aber an den anderen beiden zulässig.
Ausgangsbeschränkter Deque
In diesem Deque ist der Ausgang an einem Ende verboten, aber an beiden Enden ist die Einführung zulässig.
Erstellen von C ++ - Deque -Funktion
Wir müssen zunächst die Deque -Header -Datei einschließen, um ein Deque in C zu generieren++.
#enthaltenNach dem Importieren dieser Datei kann die folgende Syntax verwendet werden, um ein Deque zu generieren:
# Deque deque-name;Der Datentyp, den wir im Deque speichern möchten, wird in diesem Fall durch Objekttyp angezeigt. Zum Beispiel: INT, Float, String usw. Deque-name ist ein variabler Name für die Daten, die wir verwenden werden.
Deque -Funktion initialisieren
In C ++ kann die Deque -Funktion auf folgende Weise initialisiert werden:
DequeBeide Methoden werden verwendet, um die DEQUE zu initialisieren. In diesen beiden Deque -Namen wird „arr“ mit den Ganzzahlwerten 1, 3, 7, 0, 5, 8 initialisiert.
Methoden der Deque
Im Folgenden finden Sie die Methoden der Deque:
Deque-Datenstruktur
Überprüfen Sie die Details der Deque -Datenstruktur im folgenden Abschnitt:
Verfahren auf einem Deque
Diese Schritte müssen vor der Durchführung der nachfolgenden Operationen befolgt werden:
Schritt 1: Nehmen Sie ein n-dimensionales Array (Deque). Platzieren Sie in der ersten Position zwei Zeiger und setzen Sie vorne = -1 und hinten = 0.
Richten Sie ein Deque -Array und Zeiger ein.
Einfügung vorne
Schritt 1: Diese Aktion fügt vorne eine Komponente hinzu. Überprüfen Sie den Standort der Front.
Wenn die Front weniger als 5 ist, setzen Sie die Front auf n-1 zurück (letzter Index).
Schritt 2: Reduzieren Sie die Front bei Bedarf um 1. Fügen Sie nun die neue Taste N zum Array hinzu [vorne]. Nehmen wir an n = 6.
Einfügen im Heck
Schritt 1: Diese Aktion fügt eine Komponente in der Seltenen hinzu. Stellen Sie sicher, dass das Array nicht voll ist.
Schritt 2: Wenn die Warteschlange voll ist, setzen Sie den hinteren Wert auf 0 zurück (r = 0). Ansonsten erhöhen Sie die Seltene um 1.
Schritt 3: In einem Array [hinten] fügen Sie den neuen Key 6 hinzu 6.
Von vorne nehmen
Schritt 1: Ein Element an der Vorderseite wird während des Vorgangs entfernt. Stellen Sie sicher, dass das Deque nicht leer ist.
Schritt 2: Die Löschung ist nicht möglich, wenn das Deque leer ist (vorne = -1) (Unterflusserhaltung). Stellen Sie nur die Vorderseite = -1 ein und das hinten = -1, wenn das Deque aus einem Element wie vorne = hinten besteht. Weisen Sie den Wert der Vorderseite (vorne = 0) zu, wenn sich die Vorderseite am Ende befindet (vorne = n - 1). Wenn nicht, stellen Sie die Vorderseite nach vorne = 1 1 1.
Von hinten nehmen
Schritt 1: Ein Element am Ende wird während des Prozesses entfernt. Stellen Sie sicher, dass das Deque nicht leer ist.
Schritt 2: Die Löschung ist nicht möglich, wenn das Deque leer ist (vorne = -1) (Unterflusserhaltung). Stellen Sie die Vorderseite = -1 und das hintere = -1 ein, wenn das Deque nur ein einzelnes Element hat (vorne = hinten). Andernfalls fahren Sie mit den folgenden Schritten fort. Bewegen wir uns nach vorne nach vorne, hinten = n - 1, wenn sich das Heck vorne befindet (hinten = 0). Wenn nicht, stellen Sie das seltene = selten-1 ein.
Beispiel 1: Deque erstellen
In diesem Beispiel erstellen wir ein Deque. Wir schließen zuerst unsere Header -Dateien "#include" und #include ein, wobei #include den Präprozessor befiehlt.
#enthaltenDanach beschreiben wir eine Display _deque -Funktion, mit der die von uns zugewiesenen Deque -Werte ausgeführt werden.
In unserer Hauptfunktion wechselt der INT main (), dass unsere Funktion am Ende der Ausführung einen Ganzzahlwert zurückgeben muss, was wir durch die Rückgabe von 0 nach der Schlussfolgerung des Programms mit einer einheitlichen Initialisierung „Deque Mydeque 4, 2, 2) zurückgeben müssen , 5,8 ”. In diesem „int“ ist der Datentyp der Werte, den wir zugewiesen haben, und Mydeque ist der Name, den wir für unseren Deque verwendet haben. Wir haben die Ganzzahlwerte dem Deque namens Mydeque zugeordnet, die 4, 2, 7, 5, 8 sind. Um unser Deque anzuzeigen, haben wir die für die Schleife zu einer festen Größe verwendet. Und dann haben wir den Run- oder F7 -Taste gedrückt, um die Ausgabe des Programms zu erhalten.
Beispiel 2: Hinzufügen weiterer Werte zu einem DEQU
In diesem Beispiel fügen wir einem Deque mehr Werte hinzu. Nachdem wir die erforderlichen Header -Dateien für dieses Programm hinzugefügt haben, wenden wir uns in unsere Hauptfunktion des Ganzzahl -Datentyps „Deque var 0, 1, 2“ ein. In diesem „int“ ist der Datentyp der Werte, den wir zugewiesen haben, und „var“ ist der Name, den wir für unseren Deque verwendet haben. Wir weisen die Ganzzahlwerte dem Deque namens „var“ zu, die 0, 1 und 2 sind. Dann schieben wir zwei Elemente, Element 8 an der Vorderseite des Deque und Element 5 am Ende des Deque. Das resultierende Deque, das wir haben, ist 8, 0, 1 und 5.
#enthaltenSobald wir mit der Codierung dieses Beispiels fertig sind, kompilieren und führen wir es in jedem Compiler zusammen und führen wir aus. Das Ergebnis zeigt die erwartete Ausgabe des vorherigen Code.
Beispiel 3: Aktualisierung der Elemente an bestimmten Indizes
In diesem Beispiel aktualisieren wir die Werte in einem Deque, nachdem wir unsere Header -Dateien "#include" und "#include" für diesen ausführbaren Code aufgenommen haben.
#enthaltenJetzt gehen wir in unsere Hauptfunktion, in der wir unser Deque namens „var“ mit den Werten 1 und 2 initialisiert haben. Anschließend verwenden wir eine für Schleife, um die Werte unseres initialisierten Deque anzuzeigen. Um die Deque -Werte zu aktualisieren, verwenden wir die Funktion at () (wie wir wissen, die Funktion at () wird verwendet, um auf die angegebene Position in der Deque zu verweisen) unter Index 0 und 1, wobei „VAR“ neue Werte zugewiesen werden. Dies sind 3 und 4. Dann ist unser aktualisierter Dequeue 3 und 4. Nachdem wir unseren Code fertig gemacht haben, kompilieren wir ihn mit einem beliebigen Compiler -Tool zusammen. Hier ist die gewünschte Ausgabe unseres Codes:
Beispiel 4: Verwenden Sie Iterator, um die Werte zu entfernen
In diesem Beispiel verwenden wir die Iteratoren, um auf die Elemente im Deque zuzugreifen. Ein Objekt, das auf ein Element in einem Container verweist, wird als Iterator bezeichnet.
#enthaltenDeque kann sowohl mit dem Deque :: cbegin und deque :: cend und auf in beide Richtungen mit dem Deque :: crBegin und Deque :: Crend vorwärts als auch rückwärts iteriert werden.
Zunächst haben wir einen Iterator erstellt, der auf eine Deque von Ganzzahlen namens "Var" verweisen kann. Anschließend zeigten wir auf die folgenden Elemente mit dem Iterator "var_inter". Der Iterator, den die Methode begin () zurückgibt, zeigt auf das erste Element. Das „begin () + 1 erzeugt einen Iterator mit dem Index 1 des Elements als Ausgangspunkt. Wie Sie sehen können, verwenden wir den Var.end () - 1 anstelle der var.Ende().
Dies liegt daran. Um das letzte Element zu erhalten, ziehen wir 1 ab. Wir verwenden den Indirektionoperator *, um den Wert eines Elements zu erhalten, nachdem das Inter_Var verwendet wird, um darauf zu zeigen.
Operationen von Deque
Die grundlegenden Operationen, die auf Deque durchgeführt werden können, sind wie folgt:
Abschluss
Deque ist die größte Option, da es schneller ist und dem Code schneller ausführt. Das Deque funktioniert besser für Protokollsequenzen. Dieser Artikel basiert auf Deque -Implementierung und seinen Hauptmethoden, die uns helfen, die DEQUE gemäß unseren Bedürfnissen zu ändern. Wir wollen den Deque und seine Methoden sowie Beispiele für die Verwendung des Deque und die Benutzung erläutern. Das Tool, mit dem wir Code implementiert haben, ist der C ++ - Compiler. Wir haben uns aufrichtig bemüht, dieses Tutorial so einfach und verständlich wie möglich zu gestalten.