mirror of
https://github.com/Azgaar/Fantasy-Map-Generator.git
synced 2025-12-22 20:11:24 +01:00
57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
!(function (t, s) {
|
|
"object" == typeof exports && "undefined" != typeof module
|
|
? (module.exports = s())
|
|
: "function" == typeof define && define.amd
|
|
? define(s)
|
|
: ((t = "undefined" != typeof globalThis ? globalThis : t || self).FlatQueue = s());
|
|
})(this, function () {
|
|
"use strict";
|
|
return class {
|
|
constructor() {
|
|
(this.ids = []), (this.values = []), (this.length = 0);
|
|
}
|
|
clear() {
|
|
this.length = 0;
|
|
}
|
|
push(t, s) {
|
|
let i = this.length++;
|
|
for (; i > 0; ) {
|
|
const t = (i - 1) >> 1,
|
|
e = this.values[t];
|
|
if (s >= e) break;
|
|
(this.ids[i] = this.ids[t]), (this.values[i] = e), (i = t);
|
|
}
|
|
(this.ids[i] = t), (this.values[i] = s);
|
|
}
|
|
pop() {
|
|
if (0 === this.length) return;
|
|
const t = this.ids[0];
|
|
if ((this.length--, this.length > 0)) {
|
|
const t = (this.ids[0] = this.ids[this.length]),
|
|
s = (this.values[0] = this.values[this.length]),
|
|
i = this.length >> 1;
|
|
let e = 0;
|
|
for (; e < i; ) {
|
|
let t = 1 + (e << 1);
|
|
const i = t + 1;
|
|
let h = this.ids[t],
|
|
l = this.values[t];
|
|
const n = this.values[i];
|
|
if ((i < this.length && n < l && ((t = i), (h = this.ids[i]), (l = n)), l >= s)) break;
|
|
(this.ids[e] = h), (this.values[e] = l), (e = t);
|
|
}
|
|
(this.ids[e] = t), (this.values[e] = s);
|
|
}
|
|
return t;
|
|
}
|
|
peek() {
|
|
if (0 !== this.length) return this.ids[0];
|
|
}
|
|
peekValue() {
|
|
if (0 !== this.length) return this.values[0];
|
|
}
|
|
shrink() {
|
|
this.ids.length = this.values.length = this.length;
|
|
}
|
|
};
|
|
});
|