import javax.xml.soap.Node;
public class LinkedQuene <T>{
public class Node<T>{//节点类的泛型定义
T data;//数据域
Node<T> next;//指针域
public Node(Node<T>n){
next = n;
}
public Node(T obj,Node<T>n){
data = obj;
next = n;
}
public T getData(){
return data;
}
public Node<T> getNext(){
return next;
}
}
private Node<T> front,rear;
private int length;
public LinkedQuene(){
length = 0;
front = rear = new Node<T>(null);
}
public void EnQuene(T obj){
rear = rear.next = new Node<T>(obj,null);
length++;
}
public T DeQuene(){//出队
if(isEmpty()){
System.out.println("队列已空,无法出队");
return null;
}
Node<T> p = front.next;
T x = p.data;
front.next = p.next;
length--;
if(front.next == null){
rear = front;
}
return x;
}
public T getHead(){
if(isEmpty()){
System.out.println("队列已空,无法读取元素");
return null;
}
return front.next.data;
}
public int size(){
return length;
}
public boolean isEmpty(){
return front.next == null;
}
public void nextOrder(){
Node<T> p = front.next;
while (p!=null){
System.out.println(p.data);
p = p.next;
}
}
public void clear(){
front.next = rear.next = null;
}
}