一:队列结点
package linkedqueue;
/**
* @packagname:linkedqueue
* @classname:LinkedQueueNode
* @date:2017/1/25
* @author:cullianns
* @des:链式存储结点结构
*/
public class LinkedQueueNode<T> {
T data;
LinkedQueueNode<T> next;
}
二:产生链式队列结点的工厂类
package linkedqueue;
/**
* @packagname:linkedqueue
* @classname:LinkedQueueNodeFactory
* @date:2017/1/25
* @author:cullinans
* @des:创建链式存储结构结点的工厂类
*/
public class LinkedQueueNodeFactory {
public static LinkedQueueNode createLinkedQueueNode(){
return new LinkedQueueNode();
}
}
三:队列相关的入队出队操作
package linkedqueue;
public class LinkedQueueList<T> {
LinkedQueueNode<T> front;
LinkedQueueNode<T> rear;
public LinkedQueueList() {
this.front=null;
this.rear=null;
}
public int enQueue(LinkedQueueList<T> ll,T data){
LinkedQueueNode<T> tempNode=ll.rear;
LinkedQueueNode newnode = LinkedQueueNodeFactory.createLinkedQueueNode();
newnode.data=data;
newnode.next=null;
ll.rear.next=newnode;
ll.rear=newnode;
return 0;
}
public T deQueue(LinkedQueueList<T> l,T ele){
LinkedQueueNode<T> tempnode=l.front;
if(l.front!=l.rear){
ele=tempnode.data;
tempnode=tempnode.next;
l.front=tempnode;
return ele;
}else if(l.front.data!=null){
return l.front.data;
}
return null;
}
public static void main(String[] args){
LinkedQueueNode<Integer> twonode=new LinkedQueueNode<Integer>();
twonode.data=1;
twonode.next=null;
LinkedQueueList<Integer> l=new LinkedQueueList<Integer>();
l.front=twonode;
l.rear=twonode;
Integer[] eles=new Integer[]{2,3,4,5,6,7,8};
for(int i=0;i<eles.length;i++){
l.enQueue(l,eles[i]);
}
l.printQueue(l);
}
public void printQueue(LinkedQueueList l){
T data=null;
while(l.front!=l.rear){
System.out.println(l.deQueue(l,data));
}
if(l.front.data!=null){
System.out.println(l.deQueue(l,data));
}
}
}