public class Queue { /** * erster Eintrag der Liste */ public Node first; /** * Konstruktor */ public Queue() {} /** * Überprüft, ob die Liste leer ist * * @return true, wenn keine Elemente in der Liste */ public boolean isEmpty() { return first == null; } /** * Fügt ein neues Element am Ende der Liste ein */ public void enqueue(T neu) { Node n = new Node(neu); // Neue Node mit Wert "neu" anlegen // Überprüfe, ob Liste leer if (first == null) { // setze neue Node als ersten Eintrag first = n; } else { Node current = first; // gehe zum letzten Eintrag while (current.next != null) { current = current.next; } // current ist jetzt der letzte Eintrag // setze neue Node als Nachfolger von bisher letzem Eintrag current.setNext(n); } } /** * Löscht das Element an der ersten Stelle und gibt * dessen Wert zurück */ public T dequeue() { if (first == null) return null; T wert = first.wert; first = first.next; return wert; } /** * Gibt das Element an der ersten Stelle zurück, oder null */ public T front() { if (first == null) return null; return first.wert; } }