3.2.2 (2)链队 页码P58
package hicc.ds.c02_linear2;
public class LinkQueue { //带头结点的链队
private LNode front, rear;
public LinkQueue() { //初始化
front = rear = new LNode(null);
}
public void inLinkQueue(Object x) { //入队算法
LNode p = new LNode(x);
rear.next = p;
rear = p;
}
public boolean emptyLinkQueue() { //链队判空算法
if (front == rear) {
return true;
} else {
return false;
}
}
public Object outLinkQueue() { //出队算法
if (emptyLinkQueue()) {
return null;
} else {
LNode p = front.next;
front.next = p.next;
if (front.next == null) {
rear = front;
}
return p;
}
}
public static void main(String[] args) { //测试
LinkQueue linkQueue = new LinkQueue();
linkQueue.inLinkQueue('A');
linkQueue.inLinkQueue('B');
linkQueue.inLinkQueue('C');
System.out.println(linkQueue.outLinkQueue());
System.out.println(linkQueue.outLinkQueue());
System.out.println(linkQueue.outLinkQueue());
System.out.println(linkQueue.outLinkQueue());
}
}