import java.util.EmptyStackException;
class Main {
public static void main(String[] args) {
StringQueue.main(args);
}
}
class StringQueue {
private Node front, rear;
public static void main(String[] args) {
String[] namesData = {"Aaron", "John", "Moe", "Alan", "Wendy", "Betsy"};
StringQueue names = new StringQueue();
for (String name : namesData)
names.enqueue(name);
while (!names.empty()) {
String name = names.dequeue();
System.out.println(name);
}
}
public void enqueue(String data) {
if (empty()) {
rear = new Node(data);
front = rear;
} else {
rear.next = new Node(data);
rear = rear.next;
}
}
public String dequeue() {
if (empty()) {
throw new EmptyStackException();
} else {
String value = front.data;
front = front.next;
if (front == null) {
rear = null;
}
return value;
}
}
public boolean empty() {
return rear == null;
}
public String peek() {
if (empty()) {
throw new EmptyStackException();
} else {
return front.data;
}
}
}
class Node {
String data;
Node next;
Node(String d, Node n) {
data = d;
next = n;
}
Node(String d) {
this(d, null);
}
}