From ac783e8941b4f26ed125d15b9165ba1b7b0a5b26 Mon Sep 17 00:00:00 2001 From: SteffenLm <33038091+SteffenLm@users.noreply.github.com> Date: Mon, 16 Oct 2023 15:42:43 +0200 Subject: [PATCH] Implement Solution --- src/main/java/Node.java | 2 ++ src/main/java/Queue.java | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/main/java/Node.java b/src/main/java/Node.java index 379371d..91d0816 100644 --- a/src/main/java/Node.java +++ b/src/main/java/Node.java @@ -3,5 +3,7 @@ public class Node { public Node next; public Node(T value, Node next) { + this.value = value; + this.next = next; } } \ No newline at end of file diff --git a/src/main/java/Queue.java b/src/main/java/Queue.java index 946a711..4a08f96 100644 --- a/src/main/java/Queue.java +++ b/src/main/java/Queue.java @@ -4,14 +4,49 @@ public class Queue { public Node tail; public Queue() { + length = 0; + head = null; + tail = null; } public void enqueue(T item) { + if (item == null) { + return; + } + length++; + final Node node = new Node(item, null); + if (this.length == 1) { + head = node; + tail = node; + } else { + tail.next = node; + tail = node; + } } public T deque() { + if (length == 0) { + return null; + } else if (length == 1) { + length--; + Node tmp = head; + tmp.next = null; + head = null; + tail = null; + return tmp.value; + } else { + length--; + Node tmp = head; + head = head.next; + tmp.next = null; + return tmp.value; + } } public T peek() { + if (head != null) { + return head.value; + } + return null; } }