/**
* Bestandteil des Zentralabiturs 2009
*
* Objekte der Klasse Queue (Schlange) verwalten beliebige Objekte nach dem First-In-
* First-Out-Prinzip, d.h., dass das zuerst abgelegte Element als erstes wieder entnommen
* wird. Die Klasse Queue stellt Methoden in folgender Syntax zur Verfügung:
*
* Konstruktor Queue() * Nachher Eine leere Schlange ist erzeugt. **/ public Queue() { this.first = null; this.last = null; } /** * Entfernt das vorderste Element aus der Schlange.
* Auftrag dequeue() * Vorher Die Schlange ist nicht leer. * Nachher Das vorderste Element ist aus der Schlange entfernt. **/ public void dequeue() { if (!this.isEmpty()) { this.first = this.first.getNext(); if (this.isEmpty()) { this.last = null; } } } /** * Fügt ein neues Element am Ende der Schlange ein.
* Auftrag enqueue (Object pObject) * Vorher Die Schlange ist erzeugt. * Nachher pObject ist als letztes Element in der Schlange abgelegt. ** * @param pObject Inhalt des neuen Elementes. */ public void enqueue(Object pObject) { Element newItem = new Element(pObject, null); if (this.isEmpty()) { this.first = newItem; this.last = newItem; } else { this.last.setNext(newItem); this.last = newItem; } } /** * Gibt das erste Element der Schlange zurück, ohne die Schlange zu verändern.
* Anfrage front(): Object * Vorher Die Schlange ist nicht leer. * Nachher Die Anfrage liefert das vorderste Element der Schlange. Die Schlange ist * unverändert. ** * @return Inhalt des erstes Element der Schlange. */ public Object front() { Object item = null; if (!this.isEmpty()) { item = this.first.getItem(); } return item; } /** * Ist die Schlange leer?
* Anfrage isEmpty() * Nachher Die Anfrage liefert den Wert true, wenn die Schlange keine Elemente * enthält, sonst liefert sie den Wert false. ** * @return true, wenn die Schlange keine Elemente enthält, sonst false. */ public boolean isEmpty() { return this.first == null; } }