package com.java.chapterFive;
public class LinkQueueApp {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
LinkQueue queue=new LinkQueue();
queue.insert(20);
queue.insert(40);
queue.displayQueue();
queue.insert(60);
queue.insert(80);
queue.displayQueue();
queue.delete();
queue.delete();
queue.displayQueue();
}
}
/////////////////////////////////////////////////////////////////////////////////////
class LinkB{
public int data;
public LinkB next;
LinkB(int n){
this.data=n;
}
public void displayData(){
System.out.print(data+" ");
}
}
///////////////////////////////////////////////////////////////////////////////
class DoubleLinkB{
public LinkB first;
public LinkB last;
//-------------------------------------------构造函数初始化的时候,first,和last指向哪里
DoubleLinkB(){
first=null;
last=null;
}
//-----------------------------------------------------------判断队列是否为空
public boolean isEmpty(){
return last==null;
}
//--------------------------------插入队头
public void insertLinkB(int n){
LinkB newLinkB=new LinkB(n);
if(isEmpty()){
first=newLinkB;
last=newLinkB;
}else{
last.next=newLinkB;
last=newLinkB;
}
}
//------------------------------------------删除一个元素
public int deleteLink(){
int temp=first.data;
first=first.next;
return temp;
}
//---------------------------------------输出当前的数据
public void displayLink(){
System.out.print("从队列最前往后输出队列的元素:");
LinkB current=first;
while(current!=null){
System.out.print(current.data+" ");
current=current.next;
}
System.out.println(" ");
}
}
///////////////////////////////////////////////////////////////////////////////////////
class LinkQueue{
public DoubleLinkB doublelinkb;
LinkQueue(){
doublelinkb=new DoubleLinkB();
}
//---------------------------------------进队列(队尾)
public void insert(int a){
doublelinkb.insertLinkB(a);
}
//------------------------------------出队列(队头)
public void delete(){
doublelinkb.deleteLink();
}
//--------------------------------------将队列的数据输出
public void displayQueue(){
doublelinkb.displayLink();
}
}