Files
2025-11-11 00:04:55 -06:00

49 lines
1.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Queue = void 0;
class Queue {
constructor() {
this._size = 0;
}
push(...values) {
for (const value of values) {
const node = { value };
if (this.tail) {
this.tail.next = node;
}
this.tail = node;
if (!this.head) {
this.head = this.tail;
}
this._size++;
}
return this;
}
pop(_default) {
if (this.head) {
const value = this.head.value;
this.head = this.head.next;
if (!this.head) {
this.tail = undefined;
}
this._size--;
return value;
}
return _default;
}
peek() {
return this.head.value;
}
isEmpty() {
return this.head === undefined;
}
clear() {
this.head = this.tail = undefined;
this._size = 0;
}
get size() {
return this._size;
}
}
exports.Queue = Queue;