Skip to content

Commit 7a852f5

Browse files
committed
Add Queue using LinkedList
1 parent bfe6b69 commit 7a852f5

2 files changed

Lines changed: 137 additions & 0 deletions

File tree

src/main/java/org/alda/Main.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import org.alda.structure.linkedList.sorted.SortedLinkedList;
1212
import org.alda.structure.queue.IQueue;
1313
import org.alda.structure.queue.Queue;
14+
import org.alda.structure.queue.array.QueueArray;
15+
import org.alda.structure.queue.linkedList.QueueLinkedList;
1416
import org.alda.structure.stack.array.IStackArray;
1517
import org.alda.structure.stack.array.StackArray;
1618
import org.alda.structure.stack.linkedList.IStackLinkedList;
@@ -123,11 +125,61 @@ public static void testQueue(){
123125
intQueue.enqueue(5);
124126

125127
Integer item = intQueue.dequeue();
128+
Integer item1 = intQueue.dequeue();
129+
Integer item2 = intQueue.dequeue();
126130

127131
Integer front = intQueue.front();
128132
Integer rear = intQueue.rear();
129133

130134
System.out.println(item);
135+
System.out.println(item1);
136+
System.out.println(item2);
137+
System.out.println(front);
138+
System.out.println(rear);
139+
}
140+
141+
public static void testQueueArray(){
142+
IQueue<Integer> intQueue = new QueueArray<>();
143+
144+
intQueue.enqueue(1);
145+
intQueue.enqueue(2);
146+
intQueue.enqueue(3);
147+
intQueue.enqueue(4);
148+
intQueue.enqueue(5);
149+
150+
Integer item = intQueue.dequeue();
151+
Integer item1 = intQueue.dequeue();
152+
Integer item2 = intQueue.dequeue();
153+
154+
Integer front = intQueue.front();
155+
Integer rear = intQueue.rear();
156+
157+
System.out.println(item);
158+
System.out.println(item1);
159+
System.out.println(item2);
160+
System.out.println(front);
161+
System.out.println(rear);
162+
}
163+
164+
public static void testQueueLinkedList(){
165+
IQueue<Integer> intQueue = new QueueLinkedList<>();
166+
167+
intQueue.enqueue(1);
168+
intQueue.enqueue(2);
169+
intQueue.enqueue(3);
170+
intQueue.enqueue(4);
171+
intQueue.enqueue(5);
172+
173+
Integer item = intQueue.dequeue();
174+
Integer item1 = intQueue.dequeue();
175+
Integer item2 = intQueue.dequeue();
176+
177+
Integer front = intQueue.front();
178+
Integer rear = intQueue.rear();
179+
180+
System.out.println(item);
181+
System.out.println(item1);
182+
System.out.println(item2);
131183
System.out.println(front);
132184
System.out.println(rear);
133185
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package org.alda.structure.queue.linkedList;
2+
3+
import org.alda.structure.linkedList.simple.Node;
4+
import org.alda.structure.queue.IQueue;
5+
6+
import java.util.ArrayList;
7+
8+
/**
9+
* @author bcExpt1123
10+
*
11+
* Implementation of a generic Queue using a LinkedList.
12+
* @param <T>
13+
*/
14+
public class QueueLinkedList<T> implements IQueue<T> {
15+
16+
public Node<T> front;
17+
public Node<T> rear;
18+
19+
20+
public QueueLinkedList() {
21+
front = null;
22+
rear = null;
23+
}
24+
25+
/**
26+
* {@inheritDoc}
27+
* @return
28+
*/
29+
public boolean isEmpty() {
30+
return front == null;
31+
}
32+
33+
/**
34+
* {@inheritDoc}
35+
* @param item the item to be added.
36+
*/
37+
public void enqueue(T item) {
38+
Node<T> newNode = new Node<>(item);
39+
if (rear == null) {
40+
front = newNode;
41+
rear = newNode;
42+
} else {
43+
rear.next = newNode;
44+
rear = newNode;
45+
}
46+
}
47+
48+
/**
49+
* {@inheritDoc}
50+
* @return
51+
*/
52+
public T dequeue() {
53+
T popped = null;
54+
if (!isEmpty()) {
55+
popped = front.data;
56+
front = front.next;
57+
if (front == null) {
58+
rear = null;
59+
}
60+
}
61+
return popped;
62+
}
63+
64+
/**
65+
* {@inheritDoc}
66+
* @return
67+
*/
68+
public T front() {
69+
if (isEmpty()) {
70+
return null;
71+
}
72+
return front.data;
73+
}
74+
75+
/**
76+
* {@inheritDoc}
77+
* @return
78+
*/
79+
public T rear(){
80+
if (isEmpty()) {
81+
return null;
82+
}
83+
return rear.data;
84+
}
85+
}

0 commit comments

Comments
 (0)