Was ist eine Queue?

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