跳到主要内容

JavaScript 程序:实现队列

要理解此示例,你应该具备以下 JavaScript 编程主题的知识:

队列是一种遵循 先进先出 (FIFO) 原则的数据结构。

添加到队列中的第一个元素将首先被移除。这就像排队买电影票,队伍中的第一个人首先得到票。

示例:实现队列

// 程序实现队列数据结构
class Queue {
constructor() {
this.items = {};
this.headIndex = 0;
this.tailIndex = 0;
}

// 向队列添加新元素
enqueue(element) {
this.items[this.tailIndex] = element;
this.tailIndex++;
}

// 从队列头部移除元素
dequeue() {
let removedElement = this.items[this.headIndex];
delete this.items[this.headIndex];
this.headIndex++;
return removedElement;
}

// 显示队列头部元素
peek() {
let peekElement = this.items[this.headIndex];
return peekElement;
}

// 显示队列中的元素数量
size() {
return this.tailIndex - this.headIndex;
}

// 检查队列是否为空
isEmpty() {
if (this.tailIndex - this.headIndex == 0) {
return true;
} else {
return false;
}
}

// 清空队列
clear() {
this.items = {};
this.headIndex = 0;
this.tailIndex = 0;
}
}
let queue = new Queue();

// 向队列添加元素
queue.enqueue(8);
queue.enqueue(6);
queue.enqueue(4);
queue.enqueue(2);

console.log("Queue after adding items: ");
console.log(queue.items);

// 移除第一个元素
queue.dequeue();

console.log("Queue after deleting the first item:");
console.log(queue.items);

// 显示队列的第一个元素
console.log("First item of the queue = " + queue.peek());

// 清空队列
queue.clear();

console.log("After clearing the queue: ");
console.log(queue.items);

输出

Queue after adding items:
{ '0': 8, '1': 6, '2': 4, '3': 2 }
Queue after deleting the first item:
{ '1': 6, '2': 4, '3': 2 }
First item of the queue = 6
After clearing the queue:
{}

在上述程序中,使用对象实现了队列数据结构。创建了 Queue 类来实现队列数据结构。该类包括 enqueue()dequeue()peek()isEmpty()size()clear() 方法。

使用 new 操作符创建了一个 Queue 对象,并通过该对象访问了各种方法。

  • 初始时,this.items 是一个空对象,被当作队列。
  • enqueue() 方法向队列中添加元素。
  • dequeue() 方法从队列中移除第一个元素。
  • peek() 方法返回队列中的第一个元素。
  • size() 方法显示队列中的元素总数。
  • isEmpty() 方法返回一个布尔值,检查队列是否为空。
  • clear() 方法清除并重置队列。