UNPKG

makit

Version:

Make in JavaScript done right!

32 lines (31 loc) 717 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Queue = void 0; /** * 简单的队列实现 * * Array.prototype.shift 在数组较大时耗时明显增加,因此用 Set 实现。 * 注意:重复元素入队会被忽略 */ class Queue { constructor() { this.size = 0; this.data = new Set(); } push(item) { this.data.add(item); this.size = this.data.size; } peek() { return this.data.values().next().value; } pop() { if (!this.data.size) return; const item = this.peek(); this.data.delete(item); this.size--; return item; } } exports.Queue = Queue;