66 lines
1.3 KiB
Java
66 lines
1.3 KiB
Java
public class Queue<T>
|
|
{
|
|
/**
|
|
* erster Eintrag der Liste
|
|
*/
|
|
public Node<T> first;
|
|
|
|
/**
|
|
* letzter Eintrag der Liste
|
|
*/
|
|
public Node<T> last;
|
|
|
|
/**
|
|
* 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<T>(neu); // Neue Node mit Wert "neu" anlegen
|
|
|
|
// Überprüfe, ob Liste leer
|
|
if (first == null) {
|
|
// setze neue Node als ersten Eintrag
|
|
first = n;
|
|
last = n;
|
|
} else {
|
|
last.next = n;
|
|
last = 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;
|
|
}
|
|
}
|