Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/pmb/node_modules/js-sdsl/dist/cjs/container/SequentialContainer/ drwxr-xr-x | |
| Viewing file: Select action/file-type: "use strict";
Object.defineProperty(exports, "t", {
value: true
});
exports.default = exports.LinkNode = exports.LinkListIterator = void 0;
var _Base = _interopRequireDefault(require("./Base"));
var _ContainerBase = require("../ContainerBase");
function _interopRequireDefault(t) {
return t && t.t ? t : {
default: t
};
}
class LinkNode {
constructor(t) {
this.L = undefined;
this.j = undefined;
this.O = undefined;
this.L = t;
}
}
exports.LinkNode = LinkNode;
class LinkListIterator extends _ContainerBase.ContainerIterator {
constructor(t, i, s) {
super(s);
this.I = t;
this.S = i;
if (this.iteratorType === 0) {
this.pre = function() {
if (this.I.j === this.S) {
throw new RangeError("LinkList iterator access denied!");
}
this.I = this.I.j;
return this;
};
this.next = function() {
if (this.I === this.S) {
throw new RangeError("LinkList iterator access denied!");
}
this.I = this.I.O;
return this;
};
} else {
this.pre = function() {
if (this.I.O === this.S) {
throw new RangeError("LinkList iterator access denied!");
}
this.I = this.I.O;
return this;
};
this.next = function() {
if (this.I === this.S) {
throw new RangeError("LinkList iterator access denied!");
}
this.I = this.I.j;
return this;
};
}
}
get pointer() {
if (this.I === this.S) {
throw new RangeError("LinkList iterator access denied!");
}
return this.I.L;
}
set pointer(t) {
if (this.I === this.S) {
throw new RangeError("LinkList iterator access denied!");
}
this.I.L = t;
}
equals(t) {
return this.I === t.I;
}
copy() {
return new LinkListIterator(this.I, this.S, this.iteratorType);
}
}
exports.LinkListIterator = LinkListIterator;
class LinkList extends _Base.default {
constructor(t = []) {
super();
this.S = new LinkNode;
this.V = undefined;
this.G = undefined;
t.forEach((t => this.pushBack(t)));
}
clear() {
this.o = 0;
this.V = this.G = undefined;
this.S.j = this.S.O = undefined;
}
begin() {
return new LinkListIterator(this.V || this.S, this.S);
}
end() {
return new LinkListIterator(this.S, this.S);
}
rBegin() {
return new LinkListIterator(this.G || this.S, this.S, 1);
}
rEnd() {
return new LinkListIterator(this.S, this.S, 1);
}
front() {
return this.V ? this.V.L : undefined;
}
back() {
return this.G ? this.G.L : undefined;
}
forEach(t) {
if (!this.o) return;
let i = this.V;
let s = 0;
while (i !== this.S) {
t(i.L, s++);
i = i.O;
}
}
getElementByPos(t) {
if (t < 0 || t > this.o - 1) {
throw new RangeError;
}
let i = this.V;
while (t--) {
i = i.O;
}
return i.L;
}
eraseElementByPos(t) {
if (t < 0 || t > this.o - 1) {
throw new RangeError;
}
if (t === 0) this.popFront(); else if (t === this.o - 1) this.popBack(); else {
let i = this.V;
while (t--) {
i = i.O;
}
i = i;
const s = i.j;
const e = i.O;
e.j = s;
s.O = e;
this.o -= 1;
}
}
eraseElementByValue(t) {
while (this.V && this.V.L === t) this.popFront();
while (this.G && this.G.L === t) this.popBack();
if (!this.V) return;
let i = this.V;
while (i !== this.S) {
if (i.L === t) {
const t = i.j;
const s = i.O;
s.j = t;
t.O = s;
this.o -= 1;
}
i = i.O;
}
}
eraseElementByIterator(t) {
const i = t.I;
if (i === this.S) {
throw new RangeError("Invalid iterator");
}
t = t.next();
if (this.V === i) this.popFront(); else if (this.G === i) this.popBack(); else {
const t = i.j;
const s = i.O;
s.j = t;
t.O = s;
this.o -= 1;
}
return t;
}
pushBack(t) {
this.o += 1;
const i = new LinkNode(t);
if (!this.G) {
this.V = this.G = i;
this.S.O = this.V;
this.V.j = this.S;
} else {
this.G.O = i;
i.j = this.G;
this.G = i;
}
this.G.O = this.S;
this.S.j = this.G;
}
popBack() {
if (!this.G) return;
this.o -= 1;
if (this.V === this.G) {
this.V = this.G = undefined;
this.S.O = undefined;
} else {
this.G = this.G.j;
this.G.O = this.S;
}
this.S.j = this.G;
}
setElementByPos(t, i) {
if (t < 0 || t > this.o - 1) {
throw new RangeError;
}
let s = this.V;
while (t--) {
s = s.O;
}
s.L = i;
}
insert(t, i, s = 1) {
if (t < 0 || t > this.o) {
throw new RangeError;
}
if (s <= 0) return;
if (t === 0) {
while (s--) this.pushFront(i);
} else if (t === this.o) {
while (s--) this.pushBack(i);
} else {
let e = this.V;
for (let i = 1; i < t; ++i) {
e = e.O;
}
const h = e.O;
this.o += s;
while (s--) {
e.O = new LinkNode(i);
e.O.j = e;
e = e.O;
}
e.O = h;
h.j = e;
}
}
find(t) {
if (!this.V) return this.end();
let i = this.V;
while (i !== this.S) {
if (i.L === t) {
return new LinkListIterator(i, this.S);
}
i = i.O;
}
return this.end();
}
reverse() {
if (this.o <= 1) return;
let t = this.V;
let i = this.G;
let s = 0;
while (s << 1 < this.o) {
const e = t.L;
t.L = i.L;
i.L = e;
t = t.O;
i = i.j;
s += 1;
}
}
unique() {
if (this.o <= 1) return;
let t = this.V;
while (t !== this.S) {
let i = t;
while (i.O && i.L === i.O.L) {
i = i.O;
this.o -= 1;
}
t.O = i.O;
t.O.j = t;
t = t.O;
}
}
sort(t) {
if (this.o <= 1) return;
const i = [];
this.forEach((t => i.push(t)));
i.sort(t);
let s = this.V;
i.forEach((t => {
s.L = t;
s = s.O;
}));
}
pushFront(t) {
this.o += 1;
const i = new LinkNode(t);
if (!this.V) {
this.V = this.G = i;
this.G.O = this.S;
this.S.j = this.G;
} else {
i.O = this.V;
this.V.j = i;
this.V = i;
}
this.S.O = this.V;
this.V.j = this.S;
}
popFront() {
if (!this.V) return;
this.o -= 1;
if (this.V === this.G) {
this.V = this.G = undefined;
this.S.j = this.G;
} else {
this.V = this.V.O;
this.V.j = this.S;
}
this.S.O = this.V;
}
merge(t) {
if (!this.V) {
t.forEach((t => this.pushBack(t)));
return;
}
let i = this.V;
t.forEach((t => {
while (i && i !== this.S && i.L <= t) {
i = i.O;
}
if (i === this.S) {
this.pushBack(t);
i = this.G;
} else if (i === this.V) {
this.pushFront(t);
i = this.V;
} else {
this.o += 1;
const s = i.j;
s.O = new LinkNode(t);
s.O.j = s;
s.O.O = i;
i.j = s.O;
}
}));
}
[Symbol.iterator]() {
return function*() {
if (!this.V) return;
let t = this.V;
while (t !== this.S) {
yield t.L;
t = t.O;
}
}.bind(this)();
}
}
var _default = LinkList;
exports.default = _default; |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0057 ]-- |