Queue

Aus wiki.kgl-ratingen.de
Wechseln zu: Navigation, Suche

Allgemein

Eine Queue, auch Warteschlange genannt, wird häufig zur Verwaltung von Arbeitsaufträgen verwendet (z.B. Druckaufträge in einer Druckerwarteschlange). Warteschlangen arbeiten nach dem FIFO-Prinzip (First in, first out), was bedeutet, dass Aufträge, die der Warteschlange als erstes zugefügt werden, auch als erstes bearbeitet werden. Eine Warteschlange besteht aus einem "head", einem "tail" und aus den sogenannten "nodes" (Knoten). Objekte vom Typ "node" speichern jeweils einen Verweis auf die nächste "node" und auf ein beliebiges Inhaltsobjekt (content). "Head" verweist dabei auf den ersten Knoten in der Warteschlange, wohingegen "tail" auf den letzten Knoten der Warteschlange verweist. Somit entsteht eine klare Reihenfolge von beispielsweisen Druckaufträgen, die dann nach und nach abgearbeitet werden können. Bei der Warteschlange handelt es sich um eine dynamische Datenstruktur, was bedeutet, dass die Größe der Warteschlangen, beziehungsweise die Anzahl der in ihr enthaltenen Knoten, veränderbar ist.


Generische Schlange - Methoden

Enqueue

Mit der Methode enqueue kann man Elemente in die Schlange hinzufügen.

Bedingungen: 1) Die Schlange ist leer oder 2) Die Schlange enthält mindestens ein Element.

Dequeue

Mit der Methode dequeue kann man Elemente der Schlange entfernen.

Bedingungen: 1) Die Schlange enthält mindestens zwei Elemente oder 2) Die Schlange enthält nur ein Element (head und tail werden auf null gesestzt).

Front

Die Methode front gibt das erste Element aus.


isEmpty

Die Methode isEmpty fragt ab, ob die Warteschlange leer ist.


Beispiele

Darstellung einer Personen-Warteschlange

Methode zum Einfügen einer neuen Person in die Schlange

Methode zum Entfernen einer Person aus der Schlange

Beschreibung

Literaturverzeichnis