Kursinhalt
Überblick Über Algorithmen und Datenstrukturen
Überblick Über Algorithmen und Datenstrukturen
Warteschlangen
Im Gegensatz zum Stapel arbeiten Warteschlangen nach dem FIFO (First In, First Out)-Prinzip. Das bedeutet, dass das erste Element, das in eine Warteschlange eingefügt wird, auch das erste ist, das entfernt wird. Das bedeutet, dass wir bei Warteschlangen nur das erste Element exklusiv manipulieren können. Das Verhalten der Datenstruktur Warteschlange ähnelt der Warteschlange im echten Leben.
Implementierung der Warteschlange
import numpy as np class Queue: def __init__(self): self.queue = np.array([]) # Initialize an empty NumPy array def enqueue(self, item): self.queue = np.append(self.queue, item) # Add an item to the end of the queue def dequeue(self): if self.is_empty(): print("Queue is empty.") # Handle empty queue case gracefully return None # Return None if the queue is empty item = self.queue[0] # Get the first item from the queue self.queue = np.delete(self.queue, 0) # Remove the first item from the queue return item # Return the removed item def is_empty(self): return self.queue.size == 0 # Check if the queue is empty # Example usage: queue = Queue() queue.enqueue(1) queue.enqueue(2) queue.enqueue(3) print("Queue:", queue.queue) print("Dequeue:", queue.dequeue()) print("Queue after dequeue:", queue.queue) # Attempt to dequeue from an empty queue queue.dequeue() queue.dequeue() print("Dequeue from empty queue:", queue.dequeue()) # Should print 'Queue is empty.'
Eine Warteschlange ist ebenfalls ein abstrakter Datentyp. Ebenso wie der Stapel definiert die Warteschlange zwei grundlegende Operationen, Einfügen und Löschen, die in zwei grundlegenden Methoden implementiert werden:
enqueue()
- fügt ein Element am Ende einer Warteschlange ein;dequeue()
- entfernt das erste Element aus einer Warteschlange.
Der abstrakte Datentyp Warteschlange kann sowohl mit Hilfe der Array- als auch der verketteten Listen-Datenstruktur implementiert werden.
Zeitkomplexität der grundlegenden Operationen
Danke für Ihr Feedback!