美文网首页
八、队列(Queue)

八、队列(Queue)

作者: 咸鱼Jay | 来源:发表于2022-01-14 14:37 被阅读0次

队列(Queue)

\color{#00afef}{队列}是一种特殊的线性表,只能在\color{#ed7d30}{头尾两端}进行操作

  • 队尾(rear):只能从\color{#ed7d30}{队尾添加}元素,一般叫做\color{#ed7d30}{enQueue,入队}
  • 队头(front):只能从\color{#ed7d30}{队头移除}元素,一般叫做\color{#ed7d30}{deQueue,出队}
  • 先进先出的原则,First In First Out,FIFO
队列(Queue)

队列的接口设计

int size(); // 元素的数量
boolean isEmpty(); // 是否为空
void clear(); // 清空
void enQueue(E element); // 入队
E deQueue(); // 出队
E front(); // 获取队列的头元素

思考:队列的内部实现是否可以直接利用之前讲解的数据结构?

  • 动态数组、链表
  • 优先使用\color{#00afef}{双向链表},因为队列主要是往\color{#ed7d30}{头尾}操作元素
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();
    }
}

相关文章

  • 八、队列(Queue)

    队列(Queue) 是一种特殊的线性表,只能在进行操作 队尾(rear):只能从元素,一般叫做 队头(front)...

  • 循环队列的实现方法1

    设:队列长度是QUEUE_LENGTH队列数组是queue[QUEUE_LENGTH]队列头索引是head队列尾索...

  • Java—Queue队列详解

    Queue Queue队列介绍   Queue是用于模拟队列的,啥叫队列?队列就是排队的意思,比如排队结账,先进入...

  • Java—Queue队列详解(Deque/PriorityQue

    Queue Queue队列介绍   Queue是用于模拟队列的,啥叫队列?队列就是排队的意思,比如排队结账,先进入...

  • Queue模块

    一、class Queue.Queue 类 Queue类表示使用FIFO队列 Queue.qsize()返回队列的...

  • 多线程GCD

    1:GCD 创建队列: 串行队列: dispatch_queue_t queue=dispatch_queue_c...

  • 第三周_总结

    队列创建一个队列:queue_obj = queue.Queue(maxsize=30)maxsize :表示允许...

  • GCD 多线程的使用

    1.串行队列 1.1串行队列创建 dispatch_queue_t queue = dispatch_queue_...

  • GCD

    dispatch_queue_t:线程、队列dispatch_queue_create(派发队列)派发队列分为两种...

  • GCD队列queue.h__queue

    队列queue.h方法总览 创建队列(queue)相关方法: 举例说明:

网友评论

      本文标题:八、队列(Queue)

      本文链接:https://www.haomeiwen.com/subject/tfobcrtx.html