队列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。

有单链队列,循环队列,阵列队列三种。

可以用数组链表两种方式来实现

下面用链表来实现:

class Linkqueue
{
	private Linknode front;
	private Linknode rear;
	private int size;
	public Linkqueue()
	{
		front=null;
		rear=null;
		size=0;
	}
	class Linknode
	{
		public int val;
		public Linknode next;
		Linknode(int val)
		{
			this.val=val;
			next=null;
		}
	}
	public void enqueue(int val)  //添加元素
	{
		Linknode node=new Linknode(val);
		if(isempty())
			front=node;
		else
			rear.next=node;
		rear=node;
		size++;
	}
	public int dequeue()  //取出元素
	{
		int a=0;
		if(isempty())
			print empty;
		else
		{
			if(front.next==null)
				rear=null;
			a=front.val;
			front=front.next;
			size--;
		}
		return a;
	}
	public int size()  //大小
	{
		return size;
	}
	public boolean isempty()  //是否为空
	{
		return front==null;
	}
}