Eine Queue (Warteschlange) organisiert sich first-in-first-out
(FIFO-Prinzip). Wenn wir uns eine Schlange von Menschen vorstellen,
die in der Schlange warten, ist das ziemlich simpel (Dem der an erster
Stelle steht, wird zuerst geholfen. Die Person, die an letzter Stelle
in der Schlange steht, bekommt als letztes ihre Pommes). Eine
Warteschlange bietet dieselben Funktionen wie ein Stack, wobei die
Implementierung etwas anders ist, denn Queues sind Interfaces in Java.
Beispiele in der Praxis: Drucker, Operating Systems (Processors),
WebServers (manage incoming requests), Live support systems
(Warteschleife).
Ein Stack und eine Queue haben so ziemlich die gleiche Datenstruktur,
der einzige Unterschied besteht darin, wie sie ihre Informationen
anordnen.
Stacks und Queues eignen sich hervorragend, um die
Reihenfolge basierend auf der Einfügezeit beizubehalten.
Einfache Faustregel:
Verwende einen Stack, wenn du das neueste
Element verfolgen möchtest. Verwende eine Queue, wenn du das älteste
Element im Auge behalten möchtest.
Die "Priority Queue" ist ein abstrakter Datentyp und eine Variation
einer Queue, mit dem Unterschied, dass jedem darin enthaltenen Element
eine Priorität zugeordnet ist. Das Element mit der hohen Priorität
wird vor dem Element mit der niedrigen Priorität in einer
Prioritätswarteschlange bedient.
THE BIG O OF QUEUE
Access: O(N)
Search: O(N)
Insert: O(1)
Delete: O(1)
OPERATIONS:
enqueue () & dequeue ( )
peek ( ) & isEmpty ( ) & isFull()
Runtime-Complexity = O(1)
METHODS:
add(Ee) - Wenn Queue voll ist, wirft add eine Exception aus
offer(Ee) - offer wirft keine Exception aus
pole( ) - wenn Queue leer ist - null
remove ( ) - wenn Queue leer ist - Exception
peek( ) - wenn Queue leer ist - null
element ( ) - wenn Queue leer ist - Exception