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()
方法清除并重置队列。