队列(Queue)
是一种特殊的线性表,只能在进行操作
- 队尾(rear):只能从元素,一般叫做
- 队头(front):只能从元素,一般叫做
- 先进先出的原则,First In First Out,FIFO
队列的接口设计
int size(); // 元素的数量
boolean isEmpty(); // 是否为空
void clear(); // 清空
void enQueue(E element); // 入队
E deQueue(); // 出队
E front(); // 获取队列的头元素
思考:队列的内部实现是否可以直接利用之前讲解的数据结构?
- 动态数组、链表
- 优先使用,因为队列主要是往操作元素
public class Queue<E> {
private List<E> list = new LinkedList<>();
public int size() {
return list.size();
}
public boolean isEmpty() {
return list.isEmpty();
}
public void enQueue(E element) {// 官方的是offer(E e)
list.add(element);
}
public E deQueue() {// 官方的是poll()
return list.remove(0);
}
public E front() {// 官方的是peek()
return list.get(0);
}
public void clear() {
list.clear();
}
}
网友评论