js实现队列

7 阅读1分钟
class ArrayQueue {  
  constructor() {  
    this.queue = [];  
  }  
  
  // 入队操作:在队列的末尾添加一个新元素  
  enqueue(value) {  
    this.queue.push(value);  
  }  
  
  // 出队操作:移除并返回队列的第一个元素  
  dequeue() {  
    if (this.isEmpty()) {  
      throw new Error("Queue is empty");  
    }  
    return this.queue.shift();  
  }  
  
  // 查看队首元素:返回队列的第一个元素但不移除它  
  peek() {  
    if (this.isEmpty()) {  
      throw new Error("Queue is empty");  
    }  
    return this.queue[0];  
  }  
  
  // 检查队列是否为空  
  isEmpty() {  
    return this.queue.length === 0;  
  }  
  
  // 获取队列的大小  
  size() {  
    return this.queue.length;  
  }  
  
  // 清空队列:移除队列中的所有元素  
  clear() {  
    this.queue = [];  
  }  
  
  // 打印队列(可选,用于调试)  
  printQueue() {  
    console.log(this.queue.toString());  
  }  
}  
  
// 使用示例  
const queue = new ArrayQueue();  
queue.enqueue(1);  
queue.enqueue(2);  
queue.enqueue(3);  
console.log(queue.peek()); // 输出: 1  
console.log(queue.dequeue()); // 输出: 1  
console.log(queue.isEmpty()); // 输出: false  
queue.printQueue(); // 输出: 2,3  
queue.clear();  
console.log(queue.isEmpty()); // 输出: true