由于链队列采用链式结构来保存队列中的所有元素,该队列允许添加无限多个数据元素,因此链队列无队列满的问题。
package MyJava2;
public class LinkQueue {
class Node{
private String data;
private Node next;
public Node(){}
public Node(String data,Node next){
this.data=data;
this.next=next;
}
}
private Node front;
private Node rear;
private int size=0;
public LinkQueue(){
front=null;
rear=null;
}
public LinkQueue(String data){
front=new Node(data,null);
rear=front;
size++;
}
public int len(){
return size;
}
public void add(String data){
if(front==null){
front=new Node(data,null);
rear=front;
}else {
Node newNode=new Node(data,null);
rear.next=newNode;
rear=newNode;
}size++;
}
public String remove(){//移除队首元素
Node oldNode=front;
front=oldNode.next;
oldNode.next=null;
size--;
return oldNode.data;
}
public String getRear(){//返回队尾元素
return rear.data;
}
public void clear(){
front=null;
rear=null;
size=0;
}
public String toString(){
StringBuffer sb=new StringBuffer();
Node current=front;
for(;current!=null;current=current.next){
sb.append(current.data.toString()+",");
}
return sb.toString();
}
public static void main(String[] args) {
LinkQueue queue=new LinkQueue("1");
queue.add("2");
queue.add("3");
System.out.println(queue.len());
System.out.println(queue.remove());
System.out.println(queue.getRear());
}
}