Queue+Stack

master
akimmig 2023-01-18 10:57:10 +01:00
parent fe6626297f
commit 2028acb069
2 changed files with 119 additions and 0 deletions

67
Queue.java Normal file
View File

@ -0,0 +1,67 @@
public class Queue<T>
{
/**
* erster Eintrag der Liste
*/
public Node<T> 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<T>(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<T> 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;
}
}

52
Stack.java Normal file
View File

@ -0,0 +1,52 @@
public class Stack<T>
{
/**
* erster Eintrag der Liste
*/
public Node<T> first;
/**
* Konstruktor
*/
public Stack() {}
/**
* Ü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 Anfang der Liste ein
*/
public void push(T neu) {
Node n = new Node<T>(neu); // Neue Node mit Wert "neu" anlegen
n.next = first;
first = n;
}
/**
* Löscht das Element an der ersten Stelle und gibt
* dessen Wert zurück
*/
public T pop() {
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 top() {
if (first == null) return null;
return first.wert;
}
}