思路
实现队列的另一种方法是使用链表。通过在链表的末端插入元素的方法实现入队,通过删除链表的表头元素的方法实现出队操作
代码
public class LLQueue {
private CLLNode frontNode;
private CLLNode rearNode;
private LLQueue() {
frontNode = null;
rearNode = null;
}
public static LLQueue createQueue() {
return new LLQueue();
}
public boolean isEmpty() {
return frontNode == null;
}
public void enQueue(int data) {
CLLNode newNode = new CLLNode(data);
if (rearNode != null) {
rearNode.setNext(newNode);
rearNode = newNode;
}
if (frontNode == null) {
frontNode = rearNode;
}
}
public int deQueue() {
Integer data = null;
if (isEmpty()) {
throw new RuntimeException("Queue is Empty!");
} else {
data = frontNode.getData();
frontNode = frontNode.getNext();
}
return data;
}
}