什么是队列
队列是一种先进先出的线性表,只允许在表的一端进行插入,而在另一端删除元素。
队列的示意图
队列的分类
- 单链队列
- 双端队列
- 循环队列
队列实现
链队列
class LinkQueue<T> {
private int size;
private QueueNode<T> front;
private QueueNode<T> rear;
private class QueueNode<T> {
private T data;
private QueueNode<T> next;
public QueueNode() {
this.data = null;
this.next = null;
}
public QueueNode(T data) {
this.data = data;
this.next = null;
}
public QueueNode(T data, QueueNode<T> next) {
this.data = data;
this.next = next;
}
}
public LinkQueue() {
this.size = 0;
this.rear = null;
this.front = this.rear;
}
public boolean queueEmpty() {
return size==0;
}
public int queueSize() {
return this.size;
}
public void EnQueue(T data) {
QueueNode<T> node = new QueueNode<T>(data);
this.rear.next = node;
this.rear = this.rear.next;
this.size++;
}
public boolean DeQueue() {
if(this.size == 0) return false;
else {
QueueNode<T> node = new QueueNode<T>();
node = this.front.next;
this.front.next = node.next;
if(this.front.next == null) {
this.front = this.rear ;
}
return true;
}
}
}