English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Deque ist eine Generalisierung von Stapel- und Warteschlangenstrukturen, die von links nach rechts initialisiert werden. Er verwendet List-Objekte, um eine double-ended Queue zu erstellen, die O(1)Zeitkomplexität.
Deque ist eine Standardbibliotheksklasse, die sich imcollectionsModul.
Zunächst müssen wir es aus dem Standardmodul Collections importieren.
import collections
In diesem Abschnitt werden wir einige Funktionen der Deque-Klasse sehen
Es gibt zwei verschiedene Arten von Anhängen. Dieappend()
Diese Methode wird verwendet, um ein Element rechts an die Warteschlange hinzuzufügen, dasappendleft()
Diese Methode wird verwendet, um ein Element links an die Warteschlange anzuhängen.
import collections as col #Fügen Sie einige Elemente am Anfang in die Warteschlange ein my_deque = col.deque('124dfre') print('Dequeue: ) + str(my_deque) #insert x at right and B at left my_deque.append('x') my_deque.appendleft('B') print('Dequeue nach Anhängen: ' + str(my_deque)
Ausgabeergebnis
Dequeue: deque(['1', ''2', ''4', 'd', 'f', 'r', 'e']) Dequeue nach Anhängen: deque(['B', '1', ''2', ''4', 'd', 'f', 'r', 'e', 'x'])
Wie das Anhängen gibt es zwei verschiedene Arten von Ausgabe-Funktionen. Diepop()
Diese Methode wird verwendet, um das rechte Element aus der Warteschlange zu löschen und zurückzugeben, daspopleft()
Diese Methode wird verwendet, um das linke Element aus der Warteschlange zu löschen und zurückzugeben.
import collections as col #Fügen Sie einige Elemente am Anfang in die Warteschlange ein my_deque = col.deque('124dfre') print('Dequeue: ) + str(my_deque) #delete item from right and left item = my_deque.pop() print('Geholtes Element: ' + str(item)) item = my_deque.popleft() print('Geholtes Element: ' + str(item)) print('Dequeue nach pop-Operationen: ' + str(my_deque)
Ausgabeergebnis
Dequeue: deque(['1', ''2', ''4', 'd', 'f', 'r', 'e']) Geholtes Element: e Geholtes Element: 1 Dequeue nach pop-Operationen: deque(['2', ''4', 'd', 'f', 'r'])
Einige Funktionen in der Deque werden verwendet, um Informationen im Zusammenhang mit Projekten zu erhalten. Einige Funktionen, wieindex()
,count()
und so weiter. Die index-Methode wird verwendet, um den Index der ersten Erscheinung eines Elements zu erhalten. Wenn kein Element als Parameter übergeben wird, wählt sie die gesamte Liste, und nach der Angabe eines bestimmten Limits überprüft sie den Index innerhalb dieses Limits. Andererseits, diecount()
import collections as col #Fügen Sie einige Elemente am Anfang in die Warteschlange ein my_deque = col.deque('AABCDDEFD') print('Dequeue: ) + str(my_deque) Die Methode berechnet die Häufigkeit der Elemente in der Double-Ended Queue. #Finde den Index von D + print('Index von D:' D 5 Index von D im Bereich 8 print('Index von D im Bereich + 5, 8D )) #Zähle die Anzahl der Vorkommen + print('Vorkommen von A: ' A + print('Vorkommen von D: '
Ausgabeergebnis
Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) D4 Index von D: 5 Index von D im Bereich 8 bis 5 ist: 2 Vorkommen von A: 3
insert()
undremove()
MethodeWir haben bereits die append- und pop-Funktionen in der Queue gesehen, die zum Einfügen und Entfernen von Elementen verwendet werden. Es gibt auch zwei Methoden, die mit dem Einfügen und Entfernen zusammenhängen. Dieinsert()
Die Methode dient dazu, eine Zahl einzufügen. In diesem Fall können wir den Einlagenindex bereitstellen. Daher kann das Projekt an der angegebenen Position eingefügt werden. Und dieremove()
Die Methode dient dazu, die erste Erscheinung eines Elements zu löschen.
import collections as col #Fügen Sie einige Elemente am Anfang in die Warteschlange ein my_deque = col.deque('AABCDDEFD') print('Dequeue: ) + str(my_deque) #Füge Buchstaben G und H an die Position ein 5, 7 entsprechend my_deque.insert(5, 'G') my_deque.insert(7, 'H') print('Dequeue nach Einfügen: ' + str(my_deque) #Entferne die erste Erscheinung des Buchstaben D my_deque.remove('D') print('Dequeue nach Entfernen: ' + str(my_deque)
Ausgabeergebnis
Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Dequeue nach Einfügen: deque(['A', 'A', 'B', 'C', 'D', 'G', 'D', 'H', 'E', 'F', 'D']) Dequeue nach Entfernen: deque(['A', 'A', 'B', 'C', 'G', 'D', 'H', 'E', 'F', 'D'])
Die erweiterten Funktionen dienen dazu, mehrere Elemente in eine Queue hinzuzufügen. Wir können Sammlungen wie Listen oder Tupel verwenden, um mehrere Werte bereitzustellen. Es gibt zwei erweiterte Funktionen. Dieextend()
Methode dient dazu, Elemente auf der rechten Seite hinzuzufügen, ähnlich wie das Wiederaufnehmenappend()
Methode. Und dieseextendleft()
Methode dient dazu, Elemente auf der linken Seite hinzuzufügen, ähnlich wie das Wiederaufnehmenappendleft()
Methode.
import collections as col #Fügen Sie einige Elemente am Anfang in die Warteschlange ein my_deque = col.deque('AABCDDEFD') print('Dequeue: ) + str(my_deque) #Erweitern durch Hinzufügen 1, 3, 5, 7 nach rechts und x, y, z nach links my_deque.extend(1, 3, 5, 7]) my_deque.extendleft(['x', 'y', 'z']) print('Deque nach Erweitern: ) + str(my_deque)
Ausgabeergebnis
Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Deque nach Erweitern: deque(['z', 'y', 'x', 'A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D', 1, 3, 5, 7])
Wir können diesereverse()
Methode kehrt die Reihenfolge der Ausgabeque heraus. Es gibt auch eine andere Methoderotate()
。使用rotate-Methode kann die doppelte Warteschlange durch Angabe eines Parameters rotiert werden. Wenn der Parameter positiv ist, wird nach rechts gedreht, wenn er negativ ist, wird nach links gedreht.
import collections as col #Fügen Sie einige Elemente am Anfang in die Warteschlange ein my_deque = col.deque('AABCDDEFD') print('Dequeue: ) + str(my_deque) my_deque.reverse() + str(my_deque) #Drehen nach rechts, 3 elemente my_deque.rotate(3) print('Deque nach Drehen:) + str(my_deque)
Ausgabeergebnis
Dequeue: deque(['A', 'A', 'B', 'C', 'D', 'D', 'E', 'F', 'D']) Deque nach Umkehren: deque(['D', 'F', 'E', 'D', 'D', 'C', 'B', 'A', 'A']) Deque nach Drehen: deque(['B', 'A', 'A', 'D', 'F', 'E', 'D', 'D', 'C'])