Javascript 中的队列数据结构队列的应用基本操作如何使用队列示例用法

2025-06-04

JavaScript 中的队列数据结构

队列的应用

基本操作

如何使用队列

示例用法

队列是元素的线性列表,其中元素的删除可以在一端进行,称为队列,Front而元素的插入可以在另一端进行,称为队列。Rear

队列中的第一个元素将最先从列表中移除。队列也称为先进先出 (FIFO)。

把队列想象成一条线。它是水平的。队列中的第一个元素最先出来。队列从左边开始,到右边结束。因此,你可以使用 pop() 来移除数组的“最后一个”元素。

队列的应用

  • 在单个共享资源上处理请求,例如 PointerEvent、CPU 任务调度等,
  • 在现实生活中,呼叫中心电话系统(人们应该等待并保持直到服务代表有空)
  • 处理实时系统中的中断。

基本操作

可以执行的基本操作是Enqueuedequeuedisplay

入队(插入术语) - 将项目添加到队列。

出队(删除术语) - 从队列中删除一个项目

IsEmpty——检查队列是否为空。

IsFull-检查队列是否已满。

Peek——获取队列前面的元素但不将其移除。

如何使用队列

创建一个队列数据结构。该队列应该是一个具有方法的类enqueuedequeue添加到队列的操作应该存储一个元素,直到
它被移除。

待实现的功能

enqueue(item) 
dequeue() 
front() 
isEmpty()

示例用法

const q = new Queue();
q.enqueue(1);
q.dequeue(); // returns 1;
// Queue class 
class Queue {
  constructor() {
    // Array is used to implement a Queue
    this.data = [];
  }

  // Functions to be implemented 
  // enqueue(item) 
  // dequeue() 
  // front() 
  // isEmpty() 

  // Adds an element to the queue
  enqueue(item) {
    this.data.unshift(item);
  }
  // removing element from the queue 
  // returns underflow when called  
  // on empty queue 

  dequeue() {
    if (this.isEmpty()) {
      return "Underflow";
    }
    return this.data.shift();
  }

  // front function 
  front() {
    // returns the Front element of  
    // the queue without removing it. 
    if (this.isEmpty())
      return "No elements in Queue";
    return this.data[0];
  }

  // isEmpty function 
  isEmpty() {
    // return true if the queue is empty. 
    return this.data.length === 0;
  }
}

module.exports = Queue;

如果您发现本文有用,请点击绘画关注此频道以获取有关使用 Javascript 的数据结构的更多文章。

文章来源:https://dev.to/datastructs/queue-data-struct-in-javacript-1mf5
PREV
数据结构和算法对你意味着什么
NEXT
超棒的 Javascript - 网络上最好的博客、书籍、人物、播客、会议、新闻通讯、视频和纪录片(免费)