队列(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;
}
}
转载于:https://blog.51cto.com/zhenzhuangde/1733100