当前位置:首页 > JavaScript

js实现队列的三种方法

2026-03-02 03:27:57JavaScript

使用数组实现队列

数组是最直观的队列实现方式,利用pushshift方法分别模拟入队和出队操作。

const queue = [];
queue.push(1); // 入队
queue.push(2);
const item = queue.shift(); // 出队,返回1

缺点shift操作的时间复杂度为O(n),因为需要移动剩余元素。

使用链表实现队列

链表结构天然适合队列操作,通过维护头尾指针实现O(1)时间复杂度的入队和出队。

class Node {
  constructor(value) {
    this.value = value;
    this.next = null;
  }
}

class Queue {
  constructor() {
    this.head = null;
    this.tail = null;
    this.size = 0;
  }

  enqueue(value) {
    const node = new Node(value);
    if (!this.head) this.head = node;
    else this.tail.next = node;
    this.tail = node;
    this.size++;
  }

  dequeue() {
    if (!this.head) return null;
    const value = this.head.value;
    this.head = this.head.next;
    this.size--;
    return value;
  }
}

使用两个栈实现队列

通过维护输入栈和输出栈,将栈的LIFO特性转换为队列的FIFO特性。

class StackQueue {
  constructor() {
    this.inStack = [];
    this.outStack = [];
  }

  enqueue(value) {
    this.inStack.push(value);
  }

  dequeue() {
    if (this.outStack.length === 0) {
      while (this.inStack.length > 0) {
        this.outStack.push(this.inStack.pop());
      }
    }
    return this.outStack.pop();
  }
}

特点:摊还时间复杂度为O(1),适合需要兼顾栈和队列操作的场景。

js实现队列的三种方法

标签: 三种队列
分享给朋友:

相关文章

php数组实现队列

php数组实现队列

使用数组实现队列的基本方法 在PHP中,数组可以模拟队列的先进先出(FIFO)特性。通过内置的数组函数,可以轻松实现队列的基本操作。 初始化队列 $queue = []; 入队操作(enqueue…

php使用redis实现队列

php使用redis实现队列

PHP 使用 Redis 实现队列 Redis 是一个高性能的键值存储系统,支持多种数据结构,如字符串、哈希、列表、集合等。利用 Redis 的列表(List)数据结构可以轻松实现队列功能。以下是实现…

php redis如何实现队列

php redis如何实现队列

PHP Redis 实现队列的方法 Redis 是一个高性能的键值存储系统,常用于实现队列功能。以下是在 PHP 中使用 Redis 实现队列的几种常见方法: 使用 LPUSH 和 RPOP 实现…

php队列实现

php队列实现

PHP 队列实现方法 PHP 队列实现可以通过多种方式完成,以下是几种常见的方法: 使用数据库实现队列 创建数据库表存储队列任务,包含字段如 id, payload, status, crea…

php 锁 三种实现

php 锁 三种实现

PHP 锁的三种实现方式 文件锁(flock) 文件锁通过 flock() 函数实现,适用于单机环境下的进程同步。 $fp = fopen("lockfile.lock", "w+"); i…

php    队列实现

php 队列实现

队列的基本概念 队列是一种先进先出(FIFO)的数据结构,元素从队尾入队,从队头出队。PHP中可以通过数组或SplQueue类实现队列功能。 使用数组实现队列 PHP数组提供了array_push和…