**
* 链表实现一个简单的队列:先进先出
*/
public class LinkToQueue<Item> {
public Node first; //队头元素
public Node last; //队尾元素
public int N ; //元素个数
class Node{
Node next; //指向下一个元素
Item item; //链表的内容
}
public boolean isEmpty(){
return first==null;
}
public int size(){
return N;
}
/**
* 向队列末尾添加元素
* @param item
*/
public void enqueue(Item item){
Node oldNode = last; //倒数第二个元素
last = new Node(); //要添加到末尾的元素
last.item = item; //新元素添加到末尾
last.next = null; //末尾元素的指向为空
if(isEmpty()){
first = last;
}else{
oldNode.next = last; //将最后的元素和前一个元素链接起来
}
N++;
}
/**
* 删除队列头部元素
* @return
*/
public Item dequeue(){
Item item = first.item; //要返回的内容
first = first.next; //将第二个元素作为第一个元素
if (isEmpty()) last = null;
N--;
return item;
}
}
链表实现一个简单的队列
最新推荐文章于 2022-03-06 22:50:12 发布