From 2028acb069f68110268b865abf60569431fea0dd Mon Sep 17 00:00:00 2001 From: akimmig Date: Wed, 18 Jan 2023 10:57:10 +0100 Subject: [PATCH] Queue+Stack --- Queue.java | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Stack.java | 52 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 Queue.java create mode 100644 Stack.java diff --git a/Queue.java b/Queue.java new file mode 100644 index 0000000..ea53f7c --- /dev/null +++ b/Queue.java @@ -0,0 +1,67 @@ +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; + } +} diff --git a/Stack.java b/Stack.java new file mode 100644 index 0000000..e7be182 --- /dev/null +++ b/Stack.java @@ -0,0 +1,52 @@ +public class Stack +{ + /** + * erster Eintrag der Liste + */ + public Node 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(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; + } +}