public class Queue { private QueueNode head, tail; public void enqueue(Object data) { if(head == null) { head = new QueueNode(null, data); tail = head; } else { head.setPrevious(new QueueNode(null, data)); head = head.getPrevious(); } } public Object dequeue() { QueueNode temp = tail; tail = tail.getPrevious(); return temp.getData(); } public Object peekFront() { return tail.getData(); } public boolean isEmpty() { return tail == null; } }