数据结构---队列

前言

队列是一种先进先出(FIFO)的数据结构,它有两个主要操作:入队(enqueue)和出队(dequeue)。队列中的元素只能通过队尾入队,只能通过队头出队。

队列的特点

  1. 只能在队尾添加元素,在队首删除元素。
  2. 先进先出的原则。
  3. 适用于需要按照时间顺序处理的场景。

队列的常用方法

  1. enqueue(item): 向队列尾部添加一个或多个新的项。
  2. dequeue(): 移除队列的第一个项,并返回被移除的元素。
  3. head(): 返回队列第一个元素,队列不做任何变动。
  4. tail(): 返回队列最后一个元素,队列不做任何变动。
  5. isEmpty(): 队列内无元素返回 true,否则返回 false。
  6. size(): 返回队列内元素个数。
  7. clear(): 清空队列。

代码实现

队列的本质是数组,所以队列的方法就是对数组的再次封装

javascript 复制代码
class QUEUE {
    constructor() {
        this.queue = [];
    }
 
    enqueue(val) {
        this.queue.push(val);
    }
 
    dequeue() {
        this.queue.shift();
    }
 
    head() {
        return this.queue[0];
    }
 
    tail() {
        return this.queue[this.queue.length-1];
    }
 
    isEmpty() {
        return this.queue.length > 0 ? true : false;
    }
 
    size() {
        return this.queue.length;
    }
 
    clear() {
        return this.queue = []
    }
}
 
export default QUEUE;
相关推荐
苏小瀚6 小时前
[数据结构] ArrayList(顺序表)与LinkedList(链表)
数据结构
Kevinhbr10 小时前
CSP-J/S IS COMING
数据结构·c++·算法
Armyyyyy丶10 小时前
Redis底层实现原理之五大基础结构
数据结构·redis·缓存
金古圣人11 小时前
hot100 滑动窗口
数据结构·c++·算法·leetcode·哈希算法
JJJJ_iii11 小时前
【左程云算法03】对数器&算法和数据结构大致分类
数据结构·算法·分类
天选之女wow14 小时前
【代码随想录算法训练营——Day4】链表——24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07.链表相交、142.环形链表II
数据结构·算法·leetcode·链表
胡萝卜3.014 小时前
数据结构初阶:树的相关性质总结
数据结构·二叉树·性质·二叉树的性质
KarrySmile15 小时前
Day12--HOT100--23. 合并 K 个升序链表,146. LRU 缓存,94. 二叉树的中序遍历
数据结构·链表·二叉树·递归·hot100·lru·灵茶山艾府
今后12321 小时前
【数据结构】带哨兵位双向循环链表
数据结构·链表
Lee嘉图21 小时前
数据结构——队列(Java)
数据结构