Es scheint besser zu sein, eine Datenstruktur zu verwenden, die als Warteschlange bezeichnet wird, wenn die Suche nach Breitenpriorität implementiert wird Diesmal habe ich in die Warteschlange geschaut.
Warteschlange oder Warteschlange ist eine der grundlegenden Datenstrukturen eines Computers. Es enthält Daten in einer First-In- und First-Out-Listenstruktur. Beim Abrufen von Daten aus der Warteschlange werden die zuerst eingegebenen Daten der Reihe nach abgerufen. Das Einfügen von Daten in eine Warteschlange wird als Warteschlange bezeichnet, und das Herausnehmen von Daten wird als Warteschlange bezeichnet. (Aus Wikipedia)
Die Abbildung zeigt eine Datenstruktur mit folgender Struktur.
Das Bild ist wie ein Zylinder. Daten können hinter der Warteschlange (Enqueue) in die Warteschlange gestellt werden. Daten können vom Anfang der Warteschlange (Dequeue) abgerufen werden. Aufgrund der Struktur befinden sich die abrufbaren Daten in der Reihenfolge, in der sie in die Warteschlange gestellt werden. Die folgende Abbildung zeigt die Warteschlange und die Warteschlange.
Verwenden Sie zum Implementieren einer Warteschlange in Python den Typ ** deque ** des Moduls ** collection **. Obwohl es sich um einen Deque-Typ handelt, verfügt er über eine Datenstruktur, die zusätzlich zu einer Warteschlange über eine Stapelfunktion verfügt und je nach Verwendung als Stapel verwendet werden kann. Diesmal basiert die Erklärung auf der Annahme, dass sie als Warteschlange verwendet wird.
Deque importieren, um ein Warteschlangenobjekt zu erstellen.
>>> from collections import deque
>>>
>>> a=deque()
>>>
Verwenden Sie die Funktion ** append ** (), um ein Element zum Deque hinzuzufügen. Die Append-Funktion fügt ein Element von der rechten Seite der Warteschlange hinzu. Es ist nicht die ursprüngliche Verwendung der Warteschlange, aber um von links hinzuzufügen, verwenden Sie die Funktion ** appendleft ** ().
>>> a
deque([])
>>>
>>> a.append(1)
>>> a
deque([1])
>>>
>>> a.append(2)
>>> a
deque([1, 2])
>>>
>>> a.appendleft(3)
>>> a
deque([3, 1, 2])
>>>
Wenn Sie der Warteschlange sofort Elemente aus einer anderen Liste hinzufügen möchten, verwenden Sie die Funktion ** Erweitern **. Wenn Sie von der linken Seite der Warteschlange hinzufügen möchten, verwenden Sie die Funktion ** extensleft **. (Die Elemente links in der Liste werden der Reihe nach der Warteschlange hinzugefügt.)
>>> a
deque([1])
>>>
>>> b=[2,3,4]
>>>
>>> a.extend(b)
>>>
>>> a
deque([1, 2, 3, 4])
>>>
>>> a.extendleft(b)
>>>
>>> a
deque([4, 3, 2, 1, 2, 3, 4])
>>>
Verwenden Sie die Funktion ** pop **, um Elemente aus deque abzurufen. Die Pop-Funktion entfernt ein Element von der rechten Seite der Deque und gibt dieses Element zurück. Wenn Sie ein Element von der linken Seite der Deque extrahieren möchten, verwenden Sie die Funktion ** popleft **.
Wenn Sie ein bestimmtes Element aus deque entfernen möchten, verwenden Sie die Funktion ** remove **. Verwenden Sie deque.remove (x), um das erste x zu entfernen, das in der Deque angezeigt wird.
>>> a
deque([3, 1, 2])
>>>
>>> a.pop()
2
>>> a
deque([3, 1])
>>>
>>> a.popleft()
3
>>> a
deque([1])
>>>
>>>
>>> a.append(2)
>>> a.append(2)
>>> a.append(3)
>>>
>>>
>>> a
deque([1, 2, 2, 3])
>>>
>>> a.remove(2)
>>> a
deque([1, 2, 3])
>>>
Verwenden Sie die Funktion ** clear **, um alle Elemente aus der Warteschlange zu entfernen.
>>> a
deque([1, 2, 3])
>>>
>>> a.clear()
>>>
>>> a
deque([])
>>>
Verwenden Sie die Funktion ** reverse **, um die Reihenfolge der Elemente in der Warteschlange umzukehren.
>>> a
deque([1, 2, 3, 4])
>>>
>>> a.reverse()
>>>
>>> a
deque([4, 3, 2, 1])
>>>
Ich möchte es in Zukunft nutzen.
Recommended Posts