Buckets:
| class Node { | |
| /// value; | |
| /// next; | |
| constructor(value) { | |
| this.value = value; | |
| // TODO: Remove this when targeting Node.js 12. | |
| this.next = undefined; | |
| } | |
| } | |
| class Queue { | |
| // TODO: Use private class fields when targeting Node.js 12. | |
| // #_head; | |
| // #_tail; | |
| // #_size; | |
| constructor() { | |
| this.clear(); | |
| } | |
| enqueue(value) { | |
| const node = new Node(value); | |
| if (this._head) { | |
| this._tail.next = node; | |
| this._tail = node; | |
| } else { | |
| this._head = node; | |
| this._tail = node; | |
| } | |
| this._size++; | |
| } | |
| dequeue() { | |
| const current = this._head; | |
| if (!current) { | |
| return; | |
| } | |
| this._head = this._head.next; | |
| this._size--; | |
| return current.value; | |
| } | |
| clear() { | |
| this._head = undefined; | |
| this._tail = undefined; | |
| this._size = 0; | |
| } | |
| get size() { | |
| return this._size; | |
| } | |
| * [Symbol.iterator]() { | |
| let current = this._head; | |
| while (current) { | |
| yield current.value; | |
| current = current.next; | |
| } | |
| } | |
| } | |
| module.exports = Queue; | |
Xet Storage Details
- Size:
- 949 Bytes
- Xet hash:
- c7b7323dffa62ad6e01d0dbd9c7b621b928c017f720f28ea528c495520e1929f
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.