data-structure-typed 1.34.8 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +1 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
- package/.github/ISSUE_TEMPLATE/custom.md +10 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/CHANGELOG.md +1 -1
- package/CONTRIBUTING.md +0 -0
- package/README.md +8 -8
- package/dist/data-structures/binary-tree/aa-tree.js +2 -5
- package/dist/data-structures/binary-tree/aa-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/abstract-binary-tree.js +280 -423
- package/dist/data-structures/binary-tree/abstract-binary-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/avl-tree.js +63 -89
- package/dist/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/b-tree.js +2 -5
- package/dist/data-structures/binary-tree/b-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/binary-indexed-tree.js +17 -22
- package/dist/data-structures/binary-tree/binary-indexed-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/binary-tree.js +11 -30
- package/dist/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/bst.js +127 -214
- package/dist/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/data-structures/binary-tree/rb-tree.js +19 -43
- package/dist/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/segment-tree.js +80 -122
- package/dist/data-structures/binary-tree/segment-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/splay-tree.js +2 -5
- package/dist/data-structures/binary-tree/splay-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/tree-multiset.js +147 -218
- package/dist/data-structures/binary-tree/tree-multiset.js.map +1 -1
- package/dist/data-structures/binary-tree/two-three-tree.js +2 -5
- package/dist/data-structures/binary-tree/two-three-tree.js.map +1 -1
- package/dist/data-structures/graph/abstract-graph.js +338 -572
- package/dist/data-structures/graph/abstract-graph.js.map +1 -1
- package/dist/data-structures/graph/directed-graph.js +145 -275
- package/dist/data-structures/graph/directed-graph.js.map +1 -1
- package/dist/data-structures/graph/map-graph.js +46 -87
- package/dist/data-structures/graph/map-graph.js.map +1 -1
- package/dist/data-structures/graph/undirected-graph.js +90 -179
- package/dist/data-structures/graph/undirected-graph.js.map +1 -1
- package/dist/data-structures/hash/coordinate-map.js +23 -45
- package/dist/data-structures/hash/coordinate-map.js.map +1 -1
- package/dist/data-structures/hash/coordinate-set.js +20 -42
- package/dist/data-structures/hash/coordinate-set.js.map +1 -1
- package/dist/data-structures/hash/hash-map.js +85 -247
- package/dist/data-structures/hash/hash-map.js.map +1 -1
- package/dist/data-structures/hash/hash-table.js +87 -128
- package/dist/data-structures/hash/hash-table.js.map +1 -1
- package/dist/data-structures/hash/pair.js +2 -5
- package/dist/data-structures/hash/pair.js.map +1 -1
- package/dist/data-structures/hash/tree-map.js +2 -5
- package/dist/data-structures/hash/tree-map.js.map +1 -1
- package/dist/data-structures/hash/tree-set.js +2 -5
- package/dist/data-structures/hash/tree-set.js.map +1 -1
- package/dist/data-structures/heap/heap.js +56 -80
- package/dist/data-structures/heap/heap.js.map +1 -1
- package/dist/data-structures/heap/max-heap.js +8 -26
- package/dist/data-structures/heap/max-heap.js.map +1 -1
- package/dist/data-structures/heap/min-heap.js +8 -26
- package/dist/data-structures/heap/min-heap.js.map +1 -1
- package/dist/data-structures/linked-list/doubly-linked-list.js +149 -218
- package/dist/data-structures/linked-list/doubly-linked-list.js.map +1 -1
- package/dist/data-structures/linked-list/singly-linked-list.js +119 -218
- package/dist/data-structures/linked-list/singly-linked-list.js.map +1 -1
- package/dist/data-structures/linked-list/skip-linked-list.js +50 -70
- package/dist/data-structures/linked-list/skip-linked-list.js.map +1 -1
- package/dist/data-structures/matrix/matrix.js +7 -8
- package/dist/data-structures/matrix/matrix.js.map +1 -1
- package/dist/data-structures/matrix/matrix2d.js +57 -70
- package/dist/data-structures/matrix/matrix2d.js.map +1 -1
- package/dist/data-structures/matrix/navigator.js +18 -37
- package/dist/data-structures/matrix/navigator.js.map +1 -1
- package/dist/data-structures/matrix/vector2d.js +63 -84
- package/dist/data-structures/matrix/vector2d.js.map +1 -1
- package/dist/data-structures/priority-queue/max-priority-queue.js +13 -41
- package/dist/data-structures/priority-queue/max-priority-queue.js.map +1 -1
- package/dist/data-structures/priority-queue/min-priority-queue.js +13 -41
- package/dist/data-structures/priority-queue/min-priority-queue.js.map +1 -1
- package/dist/data-structures/priority-queue/priority-queue.js +93 -139
- package/dist/data-structures/priority-queue/priority-queue.js.map +1 -1
- package/dist/data-structures/queue/deque.js +82 -128
- package/dist/data-structures/queue/deque.js.map +1 -1
- package/dist/data-structures/queue/queue.js +57 -157
- package/dist/data-structures/queue/queue.js.map +1 -1
- package/dist/data-structures/stack/stack.js +21 -22
- package/dist/data-structures/stack/stack.js.map +1 -1
- package/dist/data-structures/tree/tree.js +32 -45
- package/dist/data-structures/tree/tree.js.map +1 -1
- package/dist/data-structures/trie/trie.js +93 -200
- package/dist/data-structures/trie/trie.js.map +1 -1
- package/dist/types/data-structures/abstract-binary-tree.js.map +1 -1
- package/dist/utils/utils.js +22 -107
- package/dist/utils/utils.js.map +1 -1
- package/lib/data-structures/binary-tree/abstract-binary-tree.d.ts +79 -78
- package/lib/data-structures/binary-tree/abstract-binary-tree.js +61 -141
- package/lib/data-structures/binary-tree/avl-tree.d.ts +9 -0
- package/lib/data-structures/binary-tree/avl-tree.js +22 -0
- package/lib/data-structures/binary-tree/bst.d.ts +3 -3
- package/lib/data-structures/binary-tree/bst.js +12 -15
- package/lib/data-structures/binary-tree/tree-multiset.d.ts +16 -18
- package/lib/data-structures/binary-tree/tree-multiset.js +26 -36
- package/lib/data-structures/graph/abstract-graph.d.ts +2 -2
- package/lib/data-structures/graph/abstract-graph.js +5 -5
- package/lib/data-structures/priority-queue/priority-queue.d.ts +3 -3
- package/lib/data-structures/priority-queue/priority-queue.js +3 -3
- package/lib/interfaces/abstract-binary-tree.d.ts +1 -83
- package/lib/interfaces/abstract-graph.d.ts +2 -14
- package/lib/interfaces/avl-tree.d.ts +3 -4
- package/lib/interfaces/binary-tree.d.ts +4 -2
- package/lib/interfaces/bst.d.ts +2 -12
- package/lib/interfaces/directed-graph.d.ts +0 -9
- package/lib/interfaces/rb-tree.d.ts +2 -3
- package/lib/interfaces/tree-multiset.d.ts +5 -4
- package/lib/interfaces/undirected-graph.d.ts +0 -2
- package/lib/types/data-structures/abstract-binary-tree.js +0 -1
- package/package.json +7 -7
- package/src/data-structures/binary-tree/abstract-binary-tree.ts +151 -203
- package/src/data-structures/binary-tree/avl-tree.ts +29 -0
- package/src/data-structures/binary-tree/bst.ts +12 -15
- package/src/data-structures/binary-tree/tree-multiset.ts +27 -39
- package/src/data-structures/graph/abstract-graph.ts +5 -5
- package/src/data-structures/priority-queue/priority-queue.ts +3 -3
- package/src/interfaces/abstract-binary-tree.ts +2 -183
- package/src/interfaces/abstract-graph.ts +2 -26
- package/src/interfaces/avl-tree.ts +4 -21
- package/src/interfaces/binary-tree.ts +3 -2
- package/src/interfaces/bst.ts +2 -27
- package/src/interfaces/directed-graph.ts +1 -18
- package/src/interfaces/rb-tree.ts +2 -5
- package/src/interfaces/tree-multiset.ts +4 -4
- package/src/interfaces/undirected-graph.ts +1 -4
- package/src/types/data-structures/abstract-binary-tree.ts +0 -1
- package/test/integration/avl-tree.test.ts +24 -24
- package/test/integration/bst.test.ts +71 -71
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +4 -4
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +1 -9
- package/test/unit/data-structures/binary-tree/bst.test.ts +8 -8
- package/test/unit/data-structures/binary-tree/overall.test.ts +1 -1
- package/test/unit/data-structures/binary-tree/tree-multiset.test.ts +9 -9
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +1 -1
- package/test/unit/data-structures/priority-queue/priority-queue.test.ts +4 -4
- package/umd/bundle.min.js +1 -1
- package/umd/bundle.min.js.map +1 -1
|
@@ -1,33 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = function (d, b) {
|
|
4
|
-
extendStatics = Object.setPrototypeOf ||
|
|
5
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
-
return extendStatics(d, b);
|
|
8
|
-
};
|
|
9
|
-
return function (d, b) {
|
|
10
|
-
if (typeof b !== "function" && b !== null)
|
|
11
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
-
extendStatics(d, b);
|
|
13
|
-
function __() { this.constructor = d; }
|
|
14
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
-
};
|
|
16
|
-
})();
|
|
17
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
3
|
exports.MinHeap = void 0;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
comparator: function (a, b) { return a.priority - b.priority; }
|
|
4
|
+
const heap_1 = require("./heap");
|
|
5
|
+
const priority_queue_1 = require("../priority-queue");
|
|
6
|
+
class MinHeap extends heap_1.Heap {
|
|
7
|
+
constructor(options) {
|
|
8
|
+
super(options);
|
|
9
|
+
this._pq = new priority_queue_1.PriorityQueue({
|
|
10
|
+
comparator: (a, b) => a.priority - b.priority
|
|
27
11
|
});
|
|
28
|
-
return _this;
|
|
29
12
|
}
|
|
30
|
-
|
|
31
|
-
}(heap_1.Heap));
|
|
13
|
+
}
|
|
32
14
|
exports.MinHeap = MinHeap;
|
|
33
15
|
//# sourceMappingURL=min-heap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min-heap.js","sourceRoot":"","sources":["../../../src/data-structures/heap/min-heap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"min-heap.js","sourceRoot":"","sources":["../../../src/data-structures/heap/min-heap.ts"],"names":[],"mappings":";;;AAQA,iCAAsC;AACtC,sDAAgD;AAOhD,MAAa,OAAiB,SAAQ,WAAO;IAS3C,YAAY,OAAwB;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,IAAI,8BAAa,CAAc;YACxC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ;SAC9C,CAAC,CAAC;IACL,CAAC;CACF;AAfD,0BAeC"}
|
|
@@ -1,125 +1,62 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __values = (this && this.__values) || function(o) {
|
|
3
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
4
|
-
if (m) return m.call(o);
|
|
5
|
-
if (o && typeof o.length === "number") return {
|
|
6
|
-
next: function () {
|
|
7
|
-
if (o && i >= o.length) o = void 0;
|
|
8
|
-
return { value: o && o[i++], done: !o };
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
|
-
};
|
|
13
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
-
if (!m) return o;
|
|
16
|
-
var i = m.call(o), r, ar = [], e;
|
|
17
|
-
try {
|
|
18
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
-
}
|
|
20
|
-
catch (error) { e = { error: error }; }
|
|
21
|
-
finally {
|
|
22
|
-
try {
|
|
23
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
-
}
|
|
25
|
-
finally { if (e) throw e.error; }
|
|
26
|
-
}
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
3
|
exports.DoublyLinkedList = exports.DoublyLinkedListNode = void 0;
|
|
31
|
-
|
|
32
|
-
|
|
4
|
+
class DoublyLinkedListNode {
|
|
5
|
+
constructor(val) {
|
|
33
6
|
this._val = val;
|
|
34
7
|
this._next = null;
|
|
35
8
|
this._prev = null;
|
|
36
9
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
});
|
|
57
|
-
Object.defineProperty(DoublyLinkedListNode.prototype, "prev", {
|
|
58
|
-
get: function () {
|
|
59
|
-
return this._prev;
|
|
60
|
-
},
|
|
61
|
-
set: function (value) {
|
|
62
|
-
this._prev = value;
|
|
63
|
-
},
|
|
64
|
-
enumerable: false,
|
|
65
|
-
configurable: true
|
|
66
|
-
});
|
|
67
|
-
return DoublyLinkedListNode;
|
|
68
|
-
}());
|
|
10
|
+
get val() {
|
|
11
|
+
return this._val;
|
|
12
|
+
}
|
|
13
|
+
set val(value) {
|
|
14
|
+
this._val = value;
|
|
15
|
+
}
|
|
16
|
+
get next() {
|
|
17
|
+
return this._next;
|
|
18
|
+
}
|
|
19
|
+
set next(value) {
|
|
20
|
+
this._next = value;
|
|
21
|
+
}
|
|
22
|
+
get prev() {
|
|
23
|
+
return this._prev;
|
|
24
|
+
}
|
|
25
|
+
set prev(value) {
|
|
26
|
+
this._prev = value;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
69
29
|
exports.DoublyLinkedListNode = DoublyLinkedListNode;
|
|
70
|
-
|
|
71
|
-
|
|
30
|
+
class DoublyLinkedList {
|
|
31
|
+
constructor() {
|
|
72
32
|
this._head = null;
|
|
73
33
|
this._tail = null;
|
|
74
34
|
this._length = 0;
|
|
75
35
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
});
|
|
96
|
-
Object.defineProperty(DoublyLinkedList.prototype, "length", {
|
|
97
|
-
get: function () {
|
|
98
|
-
return this._length;
|
|
99
|
-
},
|
|
100
|
-
enumerable: false,
|
|
101
|
-
configurable: true
|
|
102
|
-
});
|
|
103
|
-
DoublyLinkedList.fromArray = function (data) {
|
|
104
|
-
var e_1, _a;
|
|
105
|
-
var doublyLinkedList = new DoublyLinkedList();
|
|
106
|
-
try {
|
|
107
|
-
for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
|
|
108
|
-
var item = data_1_1.value;
|
|
109
|
-
doublyLinkedList.push(item);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
113
|
-
finally {
|
|
114
|
-
try {
|
|
115
|
-
if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);
|
|
116
|
-
}
|
|
117
|
-
finally { if (e_1) throw e_1.error; }
|
|
36
|
+
get head() {
|
|
37
|
+
return this._head;
|
|
38
|
+
}
|
|
39
|
+
set head(value) {
|
|
40
|
+
this._head = value;
|
|
41
|
+
}
|
|
42
|
+
get tail() {
|
|
43
|
+
return this._tail;
|
|
44
|
+
}
|
|
45
|
+
set tail(value) {
|
|
46
|
+
this._tail = value;
|
|
47
|
+
}
|
|
48
|
+
get length() {
|
|
49
|
+
return this._length;
|
|
50
|
+
}
|
|
51
|
+
static fromArray(data) {
|
|
52
|
+
const doublyLinkedList = new DoublyLinkedList();
|
|
53
|
+
for (const item of data) {
|
|
54
|
+
doublyLinkedList.push(item);
|
|
118
55
|
}
|
|
119
56
|
return doublyLinkedList;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
57
|
+
}
|
|
58
|
+
push(val) {
|
|
59
|
+
const newNode = new DoublyLinkedListNode(val);
|
|
123
60
|
if (!this.head) {
|
|
124
61
|
this.head = newNode;
|
|
125
62
|
this.tail = newNode;
|
|
@@ -130,14 +67,14 @@ var DoublyLinkedList = (function () {
|
|
|
130
67
|
this.tail = newNode;
|
|
131
68
|
}
|
|
132
69
|
this._length++;
|
|
133
|
-
}
|
|
134
|
-
|
|
70
|
+
}
|
|
71
|
+
addLast(val) {
|
|
135
72
|
this.push(val);
|
|
136
|
-
}
|
|
137
|
-
|
|
73
|
+
}
|
|
74
|
+
pop() {
|
|
138
75
|
if (!this.tail)
|
|
139
76
|
return undefined;
|
|
140
|
-
|
|
77
|
+
const removedNode = this.tail;
|
|
141
78
|
if (this.head === this.tail) {
|
|
142
79
|
this.head = null;
|
|
143
80
|
this.tail = null;
|
|
@@ -148,14 +85,14 @@ var DoublyLinkedList = (function () {
|
|
|
148
85
|
}
|
|
149
86
|
this._length--;
|
|
150
87
|
return removedNode.val;
|
|
151
|
-
}
|
|
152
|
-
|
|
88
|
+
}
|
|
89
|
+
pollLast() {
|
|
153
90
|
return this.pop();
|
|
154
|
-
}
|
|
155
|
-
|
|
91
|
+
}
|
|
92
|
+
shift() {
|
|
156
93
|
if (!this.head)
|
|
157
94
|
return undefined;
|
|
158
|
-
|
|
95
|
+
const removedNode = this.head;
|
|
159
96
|
if (this.head === this.tail) {
|
|
160
97
|
this.head = null;
|
|
161
98
|
this.tail = null;
|
|
@@ -166,12 +103,12 @@ var DoublyLinkedList = (function () {
|
|
|
166
103
|
}
|
|
167
104
|
this._length--;
|
|
168
105
|
return removedNode.val;
|
|
169
|
-
}
|
|
170
|
-
|
|
106
|
+
}
|
|
107
|
+
pollFirst() {
|
|
171
108
|
return this.shift();
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
|
|
109
|
+
}
|
|
110
|
+
unshift(val) {
|
|
111
|
+
const newNode = new DoublyLinkedListNode(val);
|
|
175
112
|
if (!this.head) {
|
|
176
113
|
this.head = newNode;
|
|
177
114
|
this.tail = newNode;
|
|
@@ -182,45 +119,41 @@ var DoublyLinkedList = (function () {
|
|
|
182
119
|
this.head = newNode;
|
|
183
120
|
}
|
|
184
121
|
this._length++;
|
|
185
|
-
}
|
|
186
|
-
|
|
122
|
+
}
|
|
123
|
+
addFirst(val) {
|
|
187
124
|
this.unshift(val);
|
|
188
|
-
}
|
|
189
|
-
|
|
125
|
+
}
|
|
126
|
+
peekFirst() {
|
|
190
127
|
var _a;
|
|
191
128
|
return (_a = this.head) === null || _a === void 0 ? void 0 : _a.val;
|
|
192
|
-
}
|
|
193
|
-
|
|
129
|
+
}
|
|
130
|
+
peekLast() {
|
|
194
131
|
var _a;
|
|
195
132
|
return (_a = this.tail) === null || _a === void 0 ? void 0 : _a.val;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
enumerable: false,
|
|
202
|
-
configurable: true
|
|
203
|
-
});
|
|
204
|
-
DoublyLinkedList.prototype.getAt = function (index) {
|
|
133
|
+
}
|
|
134
|
+
get size() {
|
|
135
|
+
return this.length;
|
|
136
|
+
}
|
|
137
|
+
getAt(index) {
|
|
205
138
|
if (index < 0 || index >= this.length)
|
|
206
139
|
return undefined;
|
|
207
|
-
|
|
208
|
-
for (
|
|
140
|
+
let current = this.head;
|
|
141
|
+
for (let i = 0; i < index; i++) {
|
|
209
142
|
current = current.next;
|
|
210
143
|
}
|
|
211
144
|
return current.val;
|
|
212
|
-
}
|
|
213
|
-
|
|
145
|
+
}
|
|
146
|
+
getNodeAt(index) {
|
|
214
147
|
if (index < 0 || index >= this.length)
|
|
215
148
|
return null;
|
|
216
|
-
|
|
217
|
-
for (
|
|
149
|
+
let current = this.head;
|
|
150
|
+
for (let i = 0; i < index; i++) {
|
|
218
151
|
current = current.next;
|
|
219
152
|
}
|
|
220
153
|
return current;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
|
|
154
|
+
}
|
|
155
|
+
findNode(val) {
|
|
156
|
+
let current = this.head;
|
|
224
157
|
while (current) {
|
|
225
158
|
if (current.val === val) {
|
|
226
159
|
return current;
|
|
@@ -228,8 +161,8 @@ var DoublyLinkedList = (function () {
|
|
|
228
161
|
current = current.next;
|
|
229
162
|
}
|
|
230
163
|
return null;
|
|
231
|
-
}
|
|
232
|
-
|
|
164
|
+
}
|
|
165
|
+
insertAt(index, val) {
|
|
233
166
|
if (index < 0 || index > this.length)
|
|
234
167
|
return false;
|
|
235
168
|
if (index === 0) {
|
|
@@ -240,33 +173,33 @@ var DoublyLinkedList = (function () {
|
|
|
240
173
|
this.push(val);
|
|
241
174
|
return true;
|
|
242
175
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
176
|
+
const newNode = new DoublyLinkedListNode(val);
|
|
177
|
+
const prevNode = this.getNodeAt(index - 1);
|
|
178
|
+
const nextNode = prevNode.next;
|
|
246
179
|
newNode.prev = prevNode;
|
|
247
180
|
newNode.next = nextNode;
|
|
248
181
|
prevNode.next = newNode;
|
|
249
182
|
nextNode.prev = newNode;
|
|
250
183
|
this._length++;
|
|
251
184
|
return true;
|
|
252
|
-
}
|
|
253
|
-
|
|
185
|
+
}
|
|
186
|
+
deleteAt(index) {
|
|
254
187
|
if (index < 0 || index >= this.length)
|
|
255
188
|
return undefined;
|
|
256
189
|
if (index === 0)
|
|
257
190
|
return this.shift();
|
|
258
191
|
if (index === this.length - 1)
|
|
259
192
|
return this.pop();
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
193
|
+
const removedNode = this.getNodeAt(index);
|
|
194
|
+
const prevNode = removedNode.prev;
|
|
195
|
+
const nextNode = removedNode.next;
|
|
263
196
|
prevNode.next = nextNode;
|
|
264
197
|
nextNode.prev = prevNode;
|
|
265
198
|
this._length--;
|
|
266
199
|
return removedNode.val;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
|
|
200
|
+
}
|
|
201
|
+
delete(valOrNode) {
|
|
202
|
+
let node;
|
|
270
203
|
if (valOrNode instanceof DoublyLinkedListNode) {
|
|
271
204
|
node = valOrNode;
|
|
272
205
|
}
|
|
@@ -281,8 +214,8 @@ var DoublyLinkedList = (function () {
|
|
|
281
214
|
this.pop();
|
|
282
215
|
}
|
|
283
216
|
else {
|
|
284
|
-
|
|
285
|
-
|
|
217
|
+
const prevNode = node.prev;
|
|
218
|
+
const nextNode = node.next;
|
|
286
219
|
prevNode.next = nextNode;
|
|
287
220
|
nextNode.prev = prevNode;
|
|
288
221
|
this._length--;
|
|
@@ -290,26 +223,26 @@ var DoublyLinkedList = (function () {
|
|
|
290
223
|
return true;
|
|
291
224
|
}
|
|
292
225
|
return false;
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
226
|
+
}
|
|
227
|
+
toArray() {
|
|
228
|
+
const array = [];
|
|
229
|
+
let current = this.head;
|
|
297
230
|
while (current) {
|
|
298
231
|
array.push(current.val);
|
|
299
232
|
current = current.next;
|
|
300
233
|
}
|
|
301
234
|
return array;
|
|
302
|
-
}
|
|
303
|
-
|
|
235
|
+
}
|
|
236
|
+
isEmpty() {
|
|
304
237
|
return this.length === 0;
|
|
305
|
-
}
|
|
306
|
-
|
|
238
|
+
}
|
|
239
|
+
clear() {
|
|
307
240
|
this._head = null;
|
|
308
241
|
this._tail = null;
|
|
309
242
|
this._length = 0;
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
|
|
243
|
+
}
|
|
244
|
+
find(callback) {
|
|
245
|
+
let current = this.head;
|
|
313
246
|
while (current) {
|
|
314
247
|
if (callback(current.val)) {
|
|
315
248
|
return current.val;
|
|
@@ -317,10 +250,10 @@ var DoublyLinkedList = (function () {
|
|
|
317
250
|
current = current.next;
|
|
318
251
|
}
|
|
319
252
|
return null;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
253
|
+
}
|
|
254
|
+
indexOf(val) {
|
|
255
|
+
let index = 0;
|
|
256
|
+
let current = this.head;
|
|
324
257
|
while (current) {
|
|
325
258
|
if (current.val === val) {
|
|
326
259
|
return index;
|
|
@@ -329,9 +262,9 @@ var DoublyLinkedList = (function () {
|
|
|
329
262
|
current = current.next;
|
|
330
263
|
}
|
|
331
264
|
return -1;
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
|
|
265
|
+
}
|
|
266
|
+
findLast(callback) {
|
|
267
|
+
let current = this.tail;
|
|
335
268
|
while (current) {
|
|
336
269
|
if (callback(current.val)) {
|
|
337
270
|
return current.val;
|
|
@@ -339,47 +272,46 @@ var DoublyLinkedList = (function () {
|
|
|
339
272
|
current = current.prev;
|
|
340
273
|
}
|
|
341
274
|
return null;
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
275
|
+
}
|
|
276
|
+
toArrayReverse() {
|
|
277
|
+
const array = [];
|
|
278
|
+
let current = this.tail;
|
|
346
279
|
while (current) {
|
|
347
280
|
array.push(current.val);
|
|
348
281
|
current = current.prev;
|
|
349
282
|
}
|
|
350
283
|
return array;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
_a = __read([this.tail, this.head], 2), this.head = _a[0], this.tail = _a[1];
|
|
284
|
+
}
|
|
285
|
+
reverse() {
|
|
286
|
+
let current = this.head;
|
|
287
|
+
[this.head, this.tail] = [this.tail, this.head];
|
|
356
288
|
while (current) {
|
|
357
|
-
|
|
358
|
-
|
|
289
|
+
const next = current.next;
|
|
290
|
+
[current.prev, current.next] = [current.next, current.prev];
|
|
359
291
|
current = next;
|
|
360
292
|
}
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
293
|
+
}
|
|
294
|
+
forEach(callback) {
|
|
295
|
+
let current = this.head;
|
|
296
|
+
let index = 0;
|
|
365
297
|
while (current) {
|
|
366
298
|
callback(current.val, index);
|
|
367
299
|
current = current.next;
|
|
368
300
|
index++;
|
|
369
301
|
}
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
302
|
+
}
|
|
303
|
+
map(callback) {
|
|
304
|
+
const mappedList = new DoublyLinkedList();
|
|
305
|
+
let current = this.head;
|
|
374
306
|
while (current) {
|
|
375
307
|
mappedList.push(callback(current.val));
|
|
376
308
|
current = current.next;
|
|
377
309
|
}
|
|
378
310
|
return mappedList;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
311
|
+
}
|
|
312
|
+
filter(callback) {
|
|
313
|
+
const filteredList = new DoublyLinkedList();
|
|
314
|
+
let current = this.head;
|
|
383
315
|
while (current) {
|
|
384
316
|
if (callback(current.val)) {
|
|
385
317
|
filteredList.push(current.val);
|
|
@@ -387,18 +319,18 @@ var DoublyLinkedList = (function () {
|
|
|
387
319
|
current = current.next;
|
|
388
320
|
}
|
|
389
321
|
return filteredList;
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
322
|
+
}
|
|
323
|
+
reduce(callback, initialValue) {
|
|
324
|
+
let accumulator = initialValue;
|
|
325
|
+
let current = this.head;
|
|
394
326
|
while (current) {
|
|
395
327
|
accumulator = callback(accumulator, current.val);
|
|
396
328
|
current = current.next;
|
|
397
329
|
}
|
|
398
330
|
return accumulator;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
|
|
331
|
+
}
|
|
332
|
+
insertAfter(existingValueOrNode, newValue) {
|
|
333
|
+
let existingNode;
|
|
402
334
|
if (existingValueOrNode instanceof DoublyLinkedListNode) {
|
|
403
335
|
existingNode = existingValueOrNode;
|
|
404
336
|
}
|
|
@@ -406,7 +338,7 @@ var DoublyLinkedList = (function () {
|
|
|
406
338
|
existingNode = this.findNode(existingValueOrNode);
|
|
407
339
|
}
|
|
408
340
|
if (existingNode) {
|
|
409
|
-
|
|
341
|
+
const newNode = new DoublyLinkedListNode(newValue);
|
|
410
342
|
newNode.next = existingNode.next;
|
|
411
343
|
if (existingNode.next) {
|
|
412
344
|
existingNode.next.prev = newNode;
|
|
@@ -420,9 +352,9 @@ var DoublyLinkedList = (function () {
|
|
|
420
352
|
return true;
|
|
421
353
|
}
|
|
422
354
|
return false;
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
|
|
355
|
+
}
|
|
356
|
+
insertBefore(existingValueOrNode, newValue) {
|
|
357
|
+
let existingNode;
|
|
426
358
|
if (existingValueOrNode instanceof DoublyLinkedListNode) {
|
|
427
359
|
existingNode = existingValueOrNode;
|
|
428
360
|
}
|
|
@@ -430,7 +362,7 @@ var DoublyLinkedList = (function () {
|
|
|
430
362
|
existingNode = this.findNode(existingValueOrNode);
|
|
431
363
|
}
|
|
432
364
|
if (existingNode) {
|
|
433
|
-
|
|
365
|
+
const newNode = new DoublyLinkedListNode(newValue);
|
|
434
366
|
newNode.prev = existingNode.prev;
|
|
435
367
|
if (existingNode.prev) {
|
|
436
368
|
existingNode.prev.next = newNode;
|
|
@@ -444,8 +376,7 @@ var DoublyLinkedList = (function () {
|
|
|
444
376
|
return true;
|
|
445
377
|
}
|
|
446
378
|
return false;
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
}());
|
|
379
|
+
}
|
|
380
|
+
}
|
|
450
381
|
exports.DoublyLinkedList = DoublyLinkedList;
|
|
451
382
|
//# sourceMappingURL=doubly-linked-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doubly-linked-list.js","sourceRoot":"","sources":["../../../src/data-structures/linked-list/doubly-linked-list.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;IAME,8BAAY,GAAM;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAID,sBAAI,qCAAG;aAAP;YACE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;aAED,UAAQ,KAAQ;YACd,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QACpB,CAAC;;;OAJA;IAQD,sBAAI,sCAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAED,UAAS,KAAqC;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OAJA;IAQD,sBAAI,sCAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAED,UAAS,KAAqC;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OAJA;IAKH,2BAAC;AAAD,CAAC,AAzCD,IAyCC;AAzCY,oDAAoB;AA2CjC;IAIE;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAID,sBAAI,kCAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAED,UAAS,KAAqC;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OAJA;IAQD,sBAAI,kCAAI;aAAR;YACE,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;aAED,UAAS,KAAqC;YAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;;;OAJA;IAQD,sBAAI,oCAAM;aAAV;YACE,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;;;OAAA;IAQM,0BAAS,GAAhB,UAAoB,IAAS;;QAC3B,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAK,CAAC;;YACnD,KAAmB,IAAA,SAAA,SAAA,IAAI,CAAA,0BAAA,4CAAE;gBAApB,IAAM,IAAI,iBAAA;gBACb,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC7B;;;;;;;;;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAMD,+BAAI,GAAJ,UAAK,GAAM;QACT,IAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;SACrB;aAAM;YACL,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;SACrB;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAMD,kCAAO,GAAP,UAAQ,GAAM;QACZ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAOD,8BAAG,GAAH;QACE,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,IAAI,CAAC;SACxB;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,GAAG,CAAC;IACzB,CAAC;IAOD,mCAAQ,GAAR;QACE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAOD,gCAAK,GAAL;QACE,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,IAAI,CAAC;SACxB;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,GAAG,CAAC;IACzB,CAAC;IAOD,oCAAS,GAAT;QACE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAOD,kCAAO,GAAP,UAAQ,GAAM;QACZ,IAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;SACrB;aAAM;YACL,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;SACrB;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAOD,mCAAQ,GAAR,UAAS,GAAM;QACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAMD,oCAAS,GAAT;;QACE,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,CAAC;IACxB,CAAC;IAMD,mCAAQ,GAAR;;QACE,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,CAAC;IACxB,CAAC;IAED,sBAAI,kCAAI;aAAR;YACE,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;;;OAAA;IASD,gCAAK,GAAL,UAAM,KAAa;QACjB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9B,OAAO,GAAG,OAAQ,CAAC,IAAI,CAAC;SACzB;QACD,OAAO,OAAQ,CAAC,GAAG,CAAC;IACtB,CAAC;IAUD,oCAAS,GAAT,UAAU,KAAa;QACrB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACnD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9B,OAAO,GAAG,OAAQ,CAAC,IAAI,CAAC;SACzB;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IASD,mCAAQ,GAAR,UAAS,GAAM;QACb,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,OAAO,OAAO,EAAE;YACd,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE;gBACvB,OAAO,OAAO,CAAC;aAChB;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAWD,mCAAQ,GAAR,UAAS,KAAa,EAAE,GAAM;QAC5B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,IAAI,CAAC;SACb;QAED,IAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAM,QAAQ,GAAG,QAAS,CAAC,IAAI,CAAC;QAChC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QACxB,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QACxB,QAAS,CAAC,IAAI,GAAG,OAAO,CAAC;QACzB,QAAS,CAAC,IAAI,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IASD,mCAAQ,GAAR,UAAS,KAAa;QACpB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjD,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAM,QAAQ,GAAG,WAAY,CAAC,IAAI,CAAC;QACnC,IAAM,QAAQ,GAAG,WAAY,CAAC,IAAI,CAAC;QACnC,QAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC1B,QAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,WAAY,CAAC,GAAG,CAAC;IAC1B,CAAC;IAYD,iCAAM,GAAN,UAAO,SAAsC;QAC3C,IAAI,IAAoC,CAAC;QAEzC,IAAI,SAAS,YAAY,oBAAoB,EAAE;YAC7C,IAAI,GAAG,SAAS,CAAC;SAClB;aAAM;YACL,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACjC;QAED,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;gBACtB,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;iBAAM,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;aACZ;iBAAM;gBACL,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,QAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAC1B,QAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,kCAAO,GAAP;QACE,IAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,kCAAO,GAAP;QACE,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAC3B,CAAC;IAKD,gCAAK,GAAL;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IASD,+BAAI,GAAJ,UAAK,QAA6B;QAChC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC;aACpB;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IASD,kCAAO,GAAP,UAAQ,GAAM;QACZ,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE;gBACvB,OAAO,KAAK,CAAC;aACd;YACD,KAAK,EAAE,CAAC;YACR,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAUD,mCAAQ,GAAR,UAAS,QAA6B;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC;aACpB;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,yCAAc,GAAd;QACE,IAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,kCAAO,GAAP;;QACE,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,KAAA,OAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAA,EAA9C,IAAI,CAAC,IAAI,QAAA,EAAE,IAAI,CAAC,IAAI,QAAA,CAA2B;QAChD,OAAO,OAAO,EAAE;YACd,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,KAAA,OAA+B,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAA,EAA1D,OAAO,CAAC,IAAI,QAAA,EAAE,OAAO,CAAC,IAAI,QAAA,CAAiC;YAC5D,OAAO,GAAG,IAAI,CAAC;SAChB;IACH,CAAC;IAQD,kCAAO,GAAP,UAAQ,QAAyC;QAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,OAAO,EAAE;YACd,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,CAAC;SACT;IACH,CAAC;IAUD,8BAAG,GAAH,UAAO,QAAuB;QAC5B,IAAM,UAAU,GAAG,IAAI,gBAAgB,EAAK,CAAC;QAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IASD,iCAAM,GAAN,UAAO,QAA6B;QAClC,IAAM,YAAY,GAAG,IAAI,gBAAgB,EAAK,CAAC;QAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAChC;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAYD,iCAAM,GAAN,UAAU,QAAuC,EAAE,YAAe;QAChE,IAAI,WAAW,GAAG,YAAY,CAAC;QAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YACjD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAcD,sCAAW,GAAX,UAAY,mBAAgD,EAAE,QAAW;QACvE,IAAI,YAAY,CAAC;QAEjB,IAAI,mBAAmB,YAAY,oBAAoB,EAAE;YACvD,YAAY,GAAG,mBAAmB,CAAC;SACpC;aAAM;YACL,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;SACnD;QAED,IAAI,YAAY,EAAE;YAChB,IAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACjC,IAAI,YAAY,CAAC,IAAI,EAAE;gBACrB,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aAClC;YACD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC5B,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC;YAC5B,IAAI,YAAY,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aACrB;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAeD,uCAAY,GAAZ,UAAa,mBAAgD,EAAE,QAAW;QACxE,IAAI,YAAY,CAAC;QAEjB,IAAI,mBAAmB,YAAY,oBAAoB,EAAE;YACvD,YAAY,GAAG,mBAAmB,CAAC;SACpC;aAAM;YACL,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;SACnD;QAED,IAAI,YAAY,EAAE;YAChB,IAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACjC,IAAI,YAAY,CAAC,IAAI,EAAE;gBACrB,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aAClC;YACD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC5B,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC;YAC5B,IAAI,YAAY,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aACrB;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IACH,uBAAC;AAAD,CAAC,AAzkBD,IAykBC;AAzkBY,4CAAgB"}
|
|
1
|
+
{"version":3,"file":"doubly-linked-list.js","sourceRoot":"","sources":["../../../src/data-structures/linked-list/doubly-linked-list.ts"],"names":[],"mappings":";;;AAOA,MAAa,oBAAoB;IAM/B,YAAY,GAAM;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAID,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,CAAC,KAAQ;QACd,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAqC;QAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAqC;QAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAzCD,oDAyCC;AAED,MAAa,gBAAgB;IAI3B;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAqC;QAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAID,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,IAAI,CAAC,KAAqC;QAC5C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAID,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAQD,MAAM,CAAC,SAAS,CAAI,IAAS;QAC3B,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAK,CAAC;QACnD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;YACvB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAMD,IAAI,CAAC,GAAM;QACT,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;SACrB;aAAM;YACL,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;SACrB;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAMD,OAAO,CAAC,GAAM;QACZ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAOD,GAAG;QACD,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,IAAI,CAAC;SACxB;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,GAAG,CAAC;IACzB,CAAC;IAOD,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAOD,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAClB;aAAM;YACL,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7B,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,IAAI,CAAC;SACxB;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,WAAW,CAAC,GAAG,CAAC;IACzB,CAAC;IAOD,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAOD,OAAO,CAAC,GAAM;QACZ,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;SACrB;aAAM;YACL,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,OAAO,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;SACrB;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAOD,QAAQ,CAAC,GAAM;QACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAMD,SAAS;;QACP,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,CAAC;IACxB,CAAC;IAMD,QAAQ;;QACN,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,GAAG,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IASD,KAAK,CAAC,KAAa;QACjB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9B,OAAO,GAAG,OAAQ,CAAC,IAAI,CAAC;SACzB;QACD,OAAO,OAAQ,CAAC,GAAG,CAAC;IACtB,CAAC;IAUD,SAAS,CAAC,KAAa;QACrB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACnD,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;YAC9B,OAAO,GAAG,OAAQ,CAAC,IAAI,CAAC;SACzB;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IASD,QAAQ,CAAC,GAAM;QACb,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAExB,OAAO,OAAO,EAAE;YACd,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE;gBACvB,OAAO,OAAO,CAAC;aAChB;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAWD,QAAQ,CAAC,KAAa,EAAE,GAAM;QAC5B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC;SACb;QACD,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,OAAO,IAAI,CAAC;SACb;QAED,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,QAAS,CAAC,IAAI,CAAC;QAChC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QACxB,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QACxB,QAAS,CAAC,IAAI,GAAG,OAAO,CAAC;QACzB,QAAS,CAAC,IAAI,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IASD,QAAQ,CAAC,KAAa;QACpB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;QAEjD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,WAAY,CAAC,IAAI,CAAC;QACnC,MAAM,QAAQ,GAAG,WAAY,CAAC,IAAI,CAAC;QACnC,QAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC1B,QAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,WAAY,CAAC,GAAG,CAAC;IAC1B,CAAC;IAYD,MAAM,CAAC,SAAsC;QAC3C,IAAI,IAAoC,CAAC;QAEzC,IAAI,SAAS,YAAY,oBAAoB,EAAE;YAC7C,IAAI,GAAG,SAAS,CAAC;SAClB;aAAM;YACL,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACjC;QAED,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;gBACtB,IAAI,CAAC,KAAK,EAAE,CAAC;aACd;iBAAM,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;aACZ;iBAAM;gBACL,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,QAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAC1B,QAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;gBAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,OAAO;QACL,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAMD,OAAO;QACL,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAC3B,CAAC;IAKD,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IASD,IAAI,CAAC,QAA6B;QAChC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC;aACpB;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IASD,OAAO,CAAC,GAAM;QACZ,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,EAAE;gBACvB,OAAO,KAAK,CAAC;aACd;YACD,KAAK,EAAE,CAAC;YACR,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAUD,QAAQ,CAAC,QAA6B;QACpC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,OAAO,OAAO,CAAC,GAAG,CAAC;aACpB;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAMD,cAAc;QACZ,MAAM,KAAK,GAAQ,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,OAAO;QACL,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,OAAO,EAAE;YACd,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YAC1B,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,OAAO,GAAG,IAAI,CAAC;SAChB;IACH,CAAC;IAQD,OAAO,CAAC,QAAyC;QAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,OAAO,EAAE;YACd,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7B,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YACvB,KAAK,EAAE,CAAC;SACT;IACH,CAAC;IAUD,GAAG,CAAI,QAAuB;QAC5B,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAK,CAAC;QAC7C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IASD,MAAM,CAAC,QAA6B;QAClC,MAAM,YAAY,GAAG,IAAI,gBAAgB,EAAK,CAAC;QAC/C,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAChC;YACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAYD,MAAM,CAAI,QAAuC,EAAE,YAAe;QAChE,IAAI,WAAW,GAAG,YAAY,CAAC;QAC/B,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,OAAO,EAAE;YACd,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YACjD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;SACxB;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAcD,WAAW,CAAC,mBAAgD,EAAE,QAAW;QACvE,IAAI,YAAY,CAAC;QAEjB,IAAI,mBAAmB,YAAY,oBAAoB,EAAE;YACvD,YAAY,GAAG,mBAAmB,CAAC;SACpC;aAAM;YACL,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;SACnD;QAED,IAAI,YAAY,EAAE;YAChB,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACjC,IAAI,YAAY,CAAC,IAAI,EAAE;gBACrB,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aAClC;YACD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC5B,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC;YAC5B,IAAI,YAAY,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aACrB;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAeD,YAAY,CAAC,mBAAgD,EAAE,QAAW;QACxE,IAAI,YAAY,CAAC;QAEjB,IAAI,mBAAmB,YAAY,oBAAoB,EAAE;YACvD,YAAY,GAAG,mBAAmB,CAAC;SACpC;aAAM;YACL,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;SACnD;QAED,IAAI,YAAY,EAAE;YAChB,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;YACjC,IAAI,YAAY,CAAC,IAAI,EAAE;gBACrB,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aAClC;YACD,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;YAC5B,YAAY,CAAC,IAAI,GAAG,OAAO,CAAC;YAC5B,IAAI,YAAY,KAAK,IAAI,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aACrB;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;SACb;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAzkBD,4CAykBC"}
|