Zuerst hinein, zuerst heraus
An der Supermarktkasse stellt man sich hinten an, bedient wird vorn. Niemand überholt, niemand wird vorgezogen.
- Schlange (Queue):Datenstruktur mit zwei Enden: hinten wird angestellt, vorn entnommen.
- FIFO:„First In – First Out“: Was zuerst hineinkam, kommt zuerst heraus.
- Im Alltag:Druckaufträge, Tastaturpuffer, Warteschleife einer Hotline, Nachrichten an einen Server.
Queue()erzeugt eine leere Schlange.enqueue(x)stellt x hinten an.dequeue()entnimmt das vorderste Element und liefert seinen Inhalt.head()liefert den Inhalt des vordersten Elements — es bleibt in der Schlange.isEmpty()lieferttrue, wenn die Schlange leer ist.
Queue<String> drucker = new Queue<String>();
drucker.enqueue("Brief.pdf");
drucker.enqueue("Foto.jpg");
drucker.enqueue("Referat.docx");
String jetzt = drucker.dequeue(); // "Brief.pdf" — wird gedruckt
String naechster = drucker.head(); // "Foto.jpg" — wartet weiter
Schlange: FIFO — enqueue stellt hinten an, dequeue entnimmt vorn.
Schlange und Stapel im Vergleich
Stapel und Schlange sehen fast gleich aus: hineinlegen, herausnehmen, nachsehen, leer prüfen. Der Unterschied steckt allein darin, welches Element herauskommt.
- Stapel:kehrt die Reihenfolge um — das Neueste kommt zuerst.
- Schlange:erhält die Reihenfolge — das Älteste kommt zuerst.
- Gleichstand:Wird jedes Element sofort wieder entnommen, liefern beide dieselbe Ausgabe.
Wähle eine Folge und lass sie mit ▶ oder „Schritt“ ablaufen: Jedes „rein“ wird zu push und enqueue, jedes „raus“ zu pop und dequeue. Unten liegen beide Ausgaben übereinander.
Halte fest: Bei derselben Eingabefolge liefert der Stapel das zuletzt, die Schlange das zuerst eingefügte Element. Nur wenn nie zwei Elemente gleichzeitig warten, stimmen die Ausgaben überein.
Allgemeine Hinweise
Leere Schlange
dequeue() und head() auf einer leeren Schlange führen zu einem Laufzeitfehler — vorher isEmpty() prüfen.
head entnimmt nicht
head() schaut nur nach vorn. Erst dequeue() verkürzt die Schlange.
Schlange zeichnen
Waagerecht zeichnen, vorn links und hinten rechts beschriften. enqueue ergänzt rechts, dequeue streicht links.
