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; } }