美文网首页
数据结构 - 队列

数据结构 - 队列

作者: Super曲江龙Kimi | 来源:发表于2020-03-03 21:32 被阅读0次

单向队列

image.png

queue使用链表是因为deQueue需要对头部元素进行出队列操作,链表对头部操作效率比数组高,数组需要移动

class Queue {
    constructor() {
        this.list = new doublyLinkedList();
    }

    // 清空队列
    clear() {
        this.list.clear();
    }

    // 判断队列是否为空
    isEmpty() {
        return this.list.isEmpty();
    }

    // 获取队列size
    getSize() {
        return this.list.getSize();
    }

    // 入队列 
    // 双向链表从最后添加不需要从头开始找,复杂度:O(1)
    enQueue(ele) {
        this.list.push(ele);
    }

    // 出队列 
    // 双向链表从头部出队列复杂度:O(1),如果使用数组则需要挪位置
    deQueue() {
        return this.list.remove(0);
    }

    // 获取队列头 复杂度:O(1)
    front() {
        return this.list.get(0);
    }
}

双端队列

双端队列是可以在头部和尾部都进行入队和出队操作。

class DeQueue {
    constructor() {
        this.list = new doublyLinkedList();
    }

    // 清空队列
    clear() {
        this.list.clear();
    }

    // 判断队列是否为空
    isEmpty() {
        return this.list.isEmpty();
    }

    // 获取队列size
    getSize() {
        return this.list.getSize();
    }

    // 队列尾部入队列 复杂度:O(1)
    enQueueRear(ele) {
        this.list.push(ele);
    }

    // 队列头部入队列 复杂度:O(1)
    enQueueFront(ele) {
        this.list.add(ele, 0);
    }

    // 队列尾部出队列 复杂度:O(1)
    deQueueRear() {
        return this.list.remove(this.getSize() - 1);
    }

    // 队列头部出队列 复杂度:O(1)
    deQueueFront() {
        return this.list.remove(0);
    }

    // 获取队列头
    front() {
        return this.list.get(0);
    }

    // 获取队列尾
    rear() {
        return this.list.get(this.getSize() - 1)
    }
}

相关文章

  • 看图说话数据结构之二项队列(优先队列)——原理解析

    数据结构之二叉堆(优先队列)——原理解析,数据结构之二叉堆(优先队列)——java实现,数据结构之左式堆(优先队列...

  • MQ(message queue)

    是什么? 1.什么是队列? 队列是一种先进先出的数据结构。 数据结构 线性数据结构:常用的:线性表、栈、队列、串等...

  • 数据结构-队列(Queue)-FIFO

    数据结构-队列(Queue)-FIFO 队列的接口设计 双端队列-Deque 循环队列-CircleQueue 双...

  • Java数据结构和算法概览

    Java数据结构和算法概览 数据结构 线性数据结构:常见的有一维数组,线性表,栈,队列,双队列,串。 非线性数据结...

  • 刷穿剑指offer-Day20-队列I 队列的使用与基础题型!

    队列的介绍 队列(queue)是一种简单、常用的数据结构,在上一章栈的学习中,我们已经提到了队列这种数据结构。 队...

  • AQS源码浅析(6)——条件队列

    一、ConditionObject数据结构 简单回顾条件队列的数据结构,一个单链表。 条件队列只有在独占模式下才能...

  • C++数据结构探险——队列篇

    数据结构的原理 队列:先进先出(FIFO:first in first out) 普通队列: 环形队列: 以C++...

  • Handler精讲

    讲解本技术点之前需要准备的技术点回顾 队列数据结构 数据结构-队列(queue) - CSDN博客 Java中的T...

  • Queue

    什么是队列?队列是数据结构中比较重要的一种类型(是一种数据结构),它支持 FIFO,尾部添加、头部删除(先进队列的...

  • 队列

    队列 队列数据结构 队列是遵循FIFO (First In First Out, 先进先出, 也称先来先服务) 原...

网友评论

      本文标题:数据结构 - 队列

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