/**
* 使用链表实现队列
* Create by Administrator
* 2018/6/19 0019
* 下午 4:37
**/
public class Link { public long dData;
public Link next; public Link(long d){
this.dData = d;
} public void displayLink(){
System.out.print(dData + " ");
}
} class FirstLastList{ private Link first; private Link last; public FirstLastList(){
this.first = null;
this.last = null;
} public boolean isEmpty(){
return first == null;
} public void insertLast(long dd){
Link newLink = new Link(dd);
if(isEmpty()){
first = newLink;
}else {
last.next = newLink;
}
last = newLink;
} public long deleteFirst(){
long temp = first.dData;
if(first.next == null){
last = null;
}
first = first.next;
return temp;
} public void displayList(){
Link current = first;
while (current != null){
current.displayLink();
current = current.next;
}
System.out.println("");
}
} class LinkQueue{
private FirstLastList theList; public LinkQueue(){
this.theList = new FirstLastList();
}
public boolean isEmpty(){
return theList.isEmpty();
} public void insert(long j){
theList.insertLast(j);
} public long remove(){
return theList.deleteFirst();
} public void displayQueue(){
System.out.print("Queue (front-->rear): ");
theList.displayList();
} public static void main(String[] args) {
LinkQueue linkQueue = new LinkQueue();
linkQueue.insert(20);
linkQueue.insert(40); linkQueue.displayQueue(); linkQueue.insert(60);
linkQueue.insert(80); linkQueue.displayQueue(); linkQueue.remove();
linkQueue.remove(); linkQueue.displayQueue();
}
}