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.
Files changed (142) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  3. package/.github/ISSUE_TEMPLATE/custom.md +10 -0
  4. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  5. package/CHANGELOG.md +1 -1
  6. package/CONTRIBUTING.md +0 -0
  7. package/README.md +8 -8
  8. package/dist/data-structures/binary-tree/aa-tree.js +2 -5
  9. package/dist/data-structures/binary-tree/aa-tree.js.map +1 -1
  10. package/dist/data-structures/binary-tree/abstract-binary-tree.js +280 -423
  11. package/dist/data-structures/binary-tree/abstract-binary-tree.js.map +1 -1
  12. package/dist/data-structures/binary-tree/avl-tree.js +63 -89
  13. package/dist/data-structures/binary-tree/avl-tree.js.map +1 -1
  14. package/dist/data-structures/binary-tree/b-tree.js +2 -5
  15. package/dist/data-structures/binary-tree/b-tree.js.map +1 -1
  16. package/dist/data-structures/binary-tree/binary-indexed-tree.js +17 -22
  17. package/dist/data-structures/binary-tree/binary-indexed-tree.js.map +1 -1
  18. package/dist/data-structures/binary-tree/binary-tree.js +11 -30
  19. package/dist/data-structures/binary-tree/binary-tree.js.map +1 -1
  20. package/dist/data-structures/binary-tree/bst.js +127 -214
  21. package/dist/data-structures/binary-tree/bst.js.map +1 -1
  22. package/dist/data-structures/binary-tree/rb-tree.js +19 -43
  23. package/dist/data-structures/binary-tree/rb-tree.js.map +1 -1
  24. package/dist/data-structures/binary-tree/segment-tree.js +80 -122
  25. package/dist/data-structures/binary-tree/segment-tree.js.map +1 -1
  26. package/dist/data-structures/binary-tree/splay-tree.js +2 -5
  27. package/dist/data-structures/binary-tree/splay-tree.js.map +1 -1
  28. package/dist/data-structures/binary-tree/tree-multiset.js +147 -218
  29. package/dist/data-structures/binary-tree/tree-multiset.js.map +1 -1
  30. package/dist/data-structures/binary-tree/two-three-tree.js +2 -5
  31. package/dist/data-structures/binary-tree/two-three-tree.js.map +1 -1
  32. package/dist/data-structures/graph/abstract-graph.js +338 -572
  33. package/dist/data-structures/graph/abstract-graph.js.map +1 -1
  34. package/dist/data-structures/graph/directed-graph.js +145 -275
  35. package/dist/data-structures/graph/directed-graph.js.map +1 -1
  36. package/dist/data-structures/graph/map-graph.js +46 -87
  37. package/dist/data-structures/graph/map-graph.js.map +1 -1
  38. package/dist/data-structures/graph/undirected-graph.js +90 -179
  39. package/dist/data-structures/graph/undirected-graph.js.map +1 -1
  40. package/dist/data-structures/hash/coordinate-map.js +23 -45
  41. package/dist/data-structures/hash/coordinate-map.js.map +1 -1
  42. package/dist/data-structures/hash/coordinate-set.js +20 -42
  43. package/dist/data-structures/hash/coordinate-set.js.map +1 -1
  44. package/dist/data-structures/hash/hash-map.js +85 -247
  45. package/dist/data-structures/hash/hash-map.js.map +1 -1
  46. package/dist/data-structures/hash/hash-table.js +87 -128
  47. package/dist/data-structures/hash/hash-table.js.map +1 -1
  48. package/dist/data-structures/hash/pair.js +2 -5
  49. package/dist/data-structures/hash/pair.js.map +1 -1
  50. package/dist/data-structures/hash/tree-map.js +2 -5
  51. package/dist/data-structures/hash/tree-map.js.map +1 -1
  52. package/dist/data-structures/hash/tree-set.js +2 -5
  53. package/dist/data-structures/hash/tree-set.js.map +1 -1
  54. package/dist/data-structures/heap/heap.js +56 -80
  55. package/dist/data-structures/heap/heap.js.map +1 -1
  56. package/dist/data-structures/heap/max-heap.js +8 -26
  57. package/dist/data-structures/heap/max-heap.js.map +1 -1
  58. package/dist/data-structures/heap/min-heap.js +8 -26
  59. package/dist/data-structures/heap/min-heap.js.map +1 -1
  60. package/dist/data-structures/linked-list/doubly-linked-list.js +149 -218
  61. package/dist/data-structures/linked-list/doubly-linked-list.js.map +1 -1
  62. package/dist/data-structures/linked-list/singly-linked-list.js +119 -218
  63. package/dist/data-structures/linked-list/singly-linked-list.js.map +1 -1
  64. package/dist/data-structures/linked-list/skip-linked-list.js +50 -70
  65. package/dist/data-structures/linked-list/skip-linked-list.js.map +1 -1
  66. package/dist/data-structures/matrix/matrix.js +7 -8
  67. package/dist/data-structures/matrix/matrix.js.map +1 -1
  68. package/dist/data-structures/matrix/matrix2d.js +57 -70
  69. package/dist/data-structures/matrix/matrix2d.js.map +1 -1
  70. package/dist/data-structures/matrix/navigator.js +18 -37
  71. package/dist/data-structures/matrix/navigator.js.map +1 -1
  72. package/dist/data-structures/matrix/vector2d.js +63 -84
  73. package/dist/data-structures/matrix/vector2d.js.map +1 -1
  74. package/dist/data-structures/priority-queue/max-priority-queue.js +13 -41
  75. package/dist/data-structures/priority-queue/max-priority-queue.js.map +1 -1
  76. package/dist/data-structures/priority-queue/min-priority-queue.js +13 -41
  77. package/dist/data-structures/priority-queue/min-priority-queue.js.map +1 -1
  78. package/dist/data-structures/priority-queue/priority-queue.js +93 -139
  79. package/dist/data-structures/priority-queue/priority-queue.js.map +1 -1
  80. package/dist/data-structures/queue/deque.js +82 -128
  81. package/dist/data-structures/queue/deque.js.map +1 -1
  82. package/dist/data-structures/queue/queue.js +57 -157
  83. package/dist/data-structures/queue/queue.js.map +1 -1
  84. package/dist/data-structures/stack/stack.js +21 -22
  85. package/dist/data-structures/stack/stack.js.map +1 -1
  86. package/dist/data-structures/tree/tree.js +32 -45
  87. package/dist/data-structures/tree/tree.js.map +1 -1
  88. package/dist/data-structures/trie/trie.js +93 -200
  89. package/dist/data-structures/trie/trie.js.map +1 -1
  90. package/dist/types/data-structures/abstract-binary-tree.js.map +1 -1
  91. package/dist/utils/utils.js +22 -107
  92. package/dist/utils/utils.js.map +1 -1
  93. package/lib/data-structures/binary-tree/abstract-binary-tree.d.ts +79 -78
  94. package/lib/data-structures/binary-tree/abstract-binary-tree.js +61 -141
  95. package/lib/data-structures/binary-tree/avl-tree.d.ts +9 -0
  96. package/lib/data-structures/binary-tree/avl-tree.js +22 -0
  97. package/lib/data-structures/binary-tree/bst.d.ts +3 -3
  98. package/lib/data-structures/binary-tree/bst.js +12 -15
  99. package/lib/data-structures/binary-tree/tree-multiset.d.ts +16 -18
  100. package/lib/data-structures/binary-tree/tree-multiset.js +26 -36
  101. package/lib/data-structures/graph/abstract-graph.d.ts +2 -2
  102. package/lib/data-structures/graph/abstract-graph.js +5 -5
  103. package/lib/data-structures/priority-queue/priority-queue.d.ts +3 -3
  104. package/lib/data-structures/priority-queue/priority-queue.js +3 -3
  105. package/lib/interfaces/abstract-binary-tree.d.ts +1 -83
  106. package/lib/interfaces/abstract-graph.d.ts +2 -14
  107. package/lib/interfaces/avl-tree.d.ts +3 -4
  108. package/lib/interfaces/binary-tree.d.ts +4 -2
  109. package/lib/interfaces/bst.d.ts +2 -12
  110. package/lib/interfaces/directed-graph.d.ts +0 -9
  111. package/lib/interfaces/rb-tree.d.ts +2 -3
  112. package/lib/interfaces/tree-multiset.d.ts +5 -4
  113. package/lib/interfaces/undirected-graph.d.ts +0 -2
  114. package/lib/types/data-structures/abstract-binary-tree.js +0 -1
  115. package/package.json +7 -7
  116. package/src/data-structures/binary-tree/abstract-binary-tree.ts +151 -203
  117. package/src/data-structures/binary-tree/avl-tree.ts +29 -0
  118. package/src/data-structures/binary-tree/bst.ts +12 -15
  119. package/src/data-structures/binary-tree/tree-multiset.ts +27 -39
  120. package/src/data-structures/graph/abstract-graph.ts +5 -5
  121. package/src/data-structures/priority-queue/priority-queue.ts +3 -3
  122. package/src/interfaces/abstract-binary-tree.ts +2 -183
  123. package/src/interfaces/abstract-graph.ts +2 -26
  124. package/src/interfaces/avl-tree.ts +4 -21
  125. package/src/interfaces/binary-tree.ts +3 -2
  126. package/src/interfaces/bst.ts +2 -27
  127. package/src/interfaces/directed-graph.ts +1 -18
  128. package/src/interfaces/rb-tree.ts +2 -5
  129. package/src/interfaces/tree-multiset.ts +4 -4
  130. package/src/interfaces/undirected-graph.ts +1 -4
  131. package/src/types/data-structures/abstract-binary-tree.ts +0 -1
  132. package/test/integration/avl-tree.test.ts +24 -24
  133. package/test/integration/bst.test.ts +71 -71
  134. package/test/unit/data-structures/binary-tree/avl-tree.test.ts +4 -4
  135. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +1 -9
  136. package/test/unit/data-structures/binary-tree/bst.test.ts +8 -8
  137. package/test/unit/data-structures/binary-tree/overall.test.ts +1 -1
  138. package/test/unit/data-structures/binary-tree/tree-multiset.test.ts +9 -9
  139. package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +1 -1
  140. package/test/unit/data-structures/priority-queue/priority-queue.test.ts +4 -4
  141. package/umd/bundle.min.js +1 -1
  142. package/umd/bundle.min.js.map +1 -1
@@ -1,144 +1,58 @@
1
1
  "use strict";
2
- var __generator = (this && this.__generator) || function (thisArg, body) {
3
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
4
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
5
- function verb(n) { return function (v) { return step([n, v]); }; }
6
- function step(op) {
7
- if (f) throw new TypeError("Generator is already executing.");
8
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
9
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
10
- if (y = 0, t) op = [op[0] & 2, t.value];
11
- switch (op[0]) {
12
- case 0: case 1: t = op; break;
13
- case 4: _.label++; return { value: op[1], done: false };
14
- case 5: _.label++; y = op[1]; op = [0]; continue;
15
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
16
- default:
17
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
18
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
19
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
20
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
21
- if (t[2]) _.ops.pop();
22
- _.trys.pop(); continue;
23
- }
24
- op = body.call(thisArg, _);
25
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
26
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
27
- }
28
- };
29
- var __values = (this && this.__values) || function(o) {
30
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
31
- if (m) return m.call(o);
32
- if (o && typeof o.length === "number") return {
33
- next: function () {
34
- if (o && i >= o.length) o = void 0;
35
- return { value: o && o[i++], done: !o };
36
- }
37
- };
38
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
39
- };
40
- var __read = (this && this.__read) || function (o, n) {
41
- var m = typeof Symbol === "function" && o[Symbol.iterator];
42
- if (!m) return o;
43
- var i = m.call(o), r, ar = [], e;
44
- try {
45
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
46
- }
47
- catch (error) { e = { error: error }; }
48
- finally {
49
- try {
50
- if (r && !r.done && (m = i["return"])) m.call(i);
51
- }
52
- finally { if (e) throw e.error; }
53
- }
54
- return ar;
55
- };
56
2
  Object.defineProperty(exports, "__esModule", { value: true });
57
3
  exports.SinglyLinkedList = exports.SinglyLinkedListNode = void 0;
58
- var SinglyLinkedListNode = (function () {
59
- function SinglyLinkedListNode(val) {
4
+ class SinglyLinkedListNode {
5
+ constructor(val) {
60
6
  this._val = val;
61
7
  this._next = null;
62
8
  }
63
- Object.defineProperty(SinglyLinkedListNode.prototype, "val", {
64
- get: function () {
65
- return this._val;
66
- },
67
- set: function (value) {
68
- this._val = value;
69
- },
70
- enumerable: false,
71
- configurable: true
72
- });
73
- Object.defineProperty(SinglyLinkedListNode.prototype, "next", {
74
- get: function () {
75
- return this._next;
76
- },
77
- set: function (value) {
78
- this._next = value;
79
- },
80
- enumerable: false,
81
- configurable: true
82
- });
83
- return SinglyLinkedListNode;
84
- }());
9
+ get val() {
10
+ return this._val;
11
+ }
12
+ set val(value) {
13
+ this._val = value;
14
+ }
15
+ get next() {
16
+ return this._next;
17
+ }
18
+ set next(value) {
19
+ this._next = value;
20
+ }
21
+ }
85
22
  exports.SinglyLinkedListNode = SinglyLinkedListNode;
86
- var SinglyLinkedList = (function () {
87
- function SinglyLinkedList() {
23
+ class SinglyLinkedList {
24
+ constructor() {
88
25
  this._head = null;
89
26
  this._tail = null;
90
27
  this._length = 0;
91
28
  }
92
- Object.defineProperty(SinglyLinkedList.prototype, "head", {
93
- get: function () {
94
- return this._head;
95
- },
96
- set: function (value) {
97
- this._head = value;
98
- },
99
- enumerable: false,
100
- configurable: true
101
- });
102
- Object.defineProperty(SinglyLinkedList.prototype, "tail", {
103
- get: function () {
104
- return this._tail;
105
- },
106
- set: function (value) {
107
- this._tail = value;
108
- },
109
- enumerable: false,
110
- configurable: true
111
- });
112
- Object.defineProperty(SinglyLinkedList.prototype, "length", {
113
- get: function () {
114
- return this._length;
115
- },
116
- enumerable: false,
117
- configurable: true
118
- });
119
- SinglyLinkedList.fromArray = function (data) {
120
- var e_1, _a;
121
- var singlyLinkedList = new SinglyLinkedList();
122
- try {
123
- for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
124
- var item = data_1_1.value;
125
- singlyLinkedList.push(item);
126
- }
127
- }
128
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
129
- finally {
130
- try {
131
- if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);
132
- }
133
- finally { if (e_1) throw e_1.error; }
29
+ get head() {
30
+ return this._head;
31
+ }
32
+ set head(value) {
33
+ this._head = value;
34
+ }
35
+ get tail() {
36
+ return this._tail;
37
+ }
38
+ set tail(value) {
39
+ this._tail = value;
40
+ }
41
+ get length() {
42
+ return this._length;
43
+ }
44
+ static fromArray(data) {
45
+ const singlyLinkedList = new SinglyLinkedList();
46
+ for (const item of data) {
47
+ singlyLinkedList.push(item);
134
48
  }
135
49
  return singlyLinkedList;
136
- };
137
- SinglyLinkedList.prototype.getLength = function () {
50
+ }
51
+ getLength() {
138
52
  return this._length;
139
- };
140
- SinglyLinkedList.prototype.push = function (data) {
141
- var newNode = new SinglyLinkedListNode(data);
53
+ }
54
+ push(data) {
55
+ const newNode = new SinglyLinkedListNode(data);
142
56
  if (!this.head) {
143
57
  this.head = newNode;
144
58
  this.tail = newNode;
@@ -148,37 +62,37 @@ var SinglyLinkedList = (function () {
148
62
  this.tail = newNode;
149
63
  }
150
64
  this._length++;
151
- };
152
- SinglyLinkedList.prototype.pop = function () {
65
+ }
66
+ pop() {
153
67
  if (!this.head)
154
68
  return undefined;
155
69
  if (this.head === this.tail) {
156
- var val_1 = this.head.val;
70
+ const val = this.head.val;
157
71
  this.head = null;
158
72
  this.tail = null;
159
73
  this._length--;
160
- return val_1;
74
+ return val;
161
75
  }
162
- var current = this.head;
76
+ let current = this.head;
163
77
  while (current.next !== this.tail) {
164
78
  current = current.next;
165
79
  }
166
- var val = this.tail.val;
80
+ const val = this.tail.val;
167
81
  current.next = null;
168
82
  this.tail = current;
169
83
  this._length--;
170
84
  return val;
171
- };
172
- SinglyLinkedList.prototype.shift = function () {
85
+ }
86
+ shift() {
173
87
  if (!this.head)
174
88
  return undefined;
175
- var removedNode = this.head;
89
+ const removedNode = this.head;
176
90
  this.head = this.head.next;
177
91
  this._length--;
178
92
  return removedNode.val;
179
- };
180
- SinglyLinkedList.prototype.unshift = function (val) {
181
- var newNode = new SinglyLinkedListNode(val);
93
+ }
94
+ unshift(val) {
95
+ const newNode = new SinglyLinkedListNode(val);
182
96
  if (!this.head) {
183
97
  this.head = newNode;
184
98
  this.tail = newNode;
@@ -188,45 +102,45 @@ var SinglyLinkedList = (function () {
188
102
  this.head = newNode;
189
103
  }
190
104
  this._length++;
191
- };
192
- SinglyLinkedList.prototype.getAt = function (index) {
105
+ }
106
+ getAt(index) {
193
107
  if (index < 0 || index >= this.length)
194
108
  return undefined;
195
- var current = this.head;
196
- for (var i = 0; i < index; i++) {
109
+ let current = this.head;
110
+ for (let i = 0; i < index; i++) {
197
111
  current = current.next;
198
112
  }
199
113
  return current.val;
200
- };
201
- SinglyLinkedList.prototype.getNodeAt = function (index) {
202
- var current = this.head;
203
- for (var i = 0; i < index; i++) {
114
+ }
115
+ getNodeAt(index) {
116
+ let current = this.head;
117
+ for (let i = 0; i < index; i++) {
204
118
  current = current.next;
205
119
  }
206
120
  return current;
207
- };
208
- SinglyLinkedList.prototype.deleteAt = function (index) {
121
+ }
122
+ deleteAt(index) {
209
123
  if (index < 0 || index >= this.length)
210
124
  return undefined;
211
125
  if (index === 0)
212
126
  return this.shift();
213
127
  if (index === this.length - 1)
214
128
  return this.pop();
215
- var prevNode = this.getNodeAt(index - 1);
216
- var removedNode = prevNode.next;
129
+ const prevNode = this.getNodeAt(index - 1);
130
+ const removedNode = prevNode.next;
217
131
  prevNode.next = removedNode.next;
218
132
  this._length--;
219
133
  return removedNode.val;
220
- };
221
- SinglyLinkedList.prototype.delete = function (valueOrNode) {
222
- var value;
134
+ }
135
+ delete(valueOrNode) {
136
+ let value;
223
137
  if (valueOrNode instanceof SinglyLinkedListNode) {
224
138
  value = valueOrNode.val;
225
139
  }
226
140
  else {
227
141
  value = valueOrNode;
228
142
  }
229
- var current = this.head, prev = null;
143
+ let current = this.head, prev = null;
230
144
  while (current) {
231
145
  if (current.val === value) {
232
146
  if (prev === null) {
@@ -248,8 +162,8 @@ var SinglyLinkedList = (function () {
248
162
  current = current.next;
249
163
  }
250
164
  return false;
251
- };
252
- SinglyLinkedList.prototype.insertAt = function (index, val) {
165
+ }
166
+ insertAt(index, val) {
253
167
  if (index < 0 || index > this.length)
254
168
  return false;
255
169
  if (index === 0) {
@@ -260,47 +174,46 @@ var SinglyLinkedList = (function () {
260
174
  this.push(val);
261
175
  return true;
262
176
  }
263
- var newNode = new SinglyLinkedListNode(val);
264
- var prevNode = this.getNodeAt(index - 1);
177
+ const newNode = new SinglyLinkedListNode(val);
178
+ const prevNode = this.getNodeAt(index - 1);
265
179
  newNode.next = prevNode.next;
266
180
  prevNode.next = newNode;
267
181
  this._length++;
268
182
  return true;
269
- };
270
- SinglyLinkedList.prototype.isEmpty = function () {
183
+ }
184
+ isEmpty() {
271
185
  return this.length === 0;
272
- };
273
- SinglyLinkedList.prototype.clear = function () {
186
+ }
187
+ clear() {
274
188
  this._head = null;
275
189
  this._tail = null;
276
190
  this._length = 0;
277
- };
278
- SinglyLinkedList.prototype.toArray = function () {
279
- var array = [];
280
- var current = this.head;
191
+ }
192
+ toArray() {
193
+ const array = [];
194
+ let current = this.head;
281
195
  while (current) {
282
196
  array.push(current.val);
283
197
  current = current.next;
284
198
  }
285
199
  return array;
286
- };
287
- SinglyLinkedList.prototype.reverse = function () {
288
- var _a;
200
+ }
201
+ reverse() {
289
202
  if (!this.head || this.head === this.tail)
290
203
  return;
291
- var prev = null;
292
- var current = this.head;
293
- var next = null;
204
+ let prev = null;
205
+ let current = this.head;
206
+ let next = null;
294
207
  while (current) {
295
208
  next = current.next;
296
209
  current.next = prev;
297
210
  prev = current;
298
211
  current = next;
299
212
  }
300
- _a = __read([this.tail, this.head], 2), this.head = _a[0], this.tail = _a[1];
301
- };
302
- SinglyLinkedList.prototype.find = function (callback) {
303
- var current = this.head;
213
+ [this.head, this.tail] = [this.tail, this.head];
214
+ }
215
+ find(callback) {
216
+ let current = this.head;
304
217
  while (current) {
305
218
  if (callback(current.val)) {
306
219
  return current.val;
@@ -308,10 +221,10 @@ var SinglyLinkedList = (function () {
308
221
  current = current.next;
309
222
  }
310
223
  return null;
311
- };
312
- SinglyLinkedList.prototype.indexOf = function (value) {
313
- var index = 0;
314
- var current = this.head;
224
+ }
225
+ indexOf(value) {
226
+ let index = 0;
227
+ let current = this.head;
315
228
  while (current) {
316
229
  if (current.val === value) {
317
230
  return index;
@@ -320,9 +233,9 @@ var SinglyLinkedList = (function () {
320
233
  current = current.next;
321
234
  }
322
235
  return -1;
323
- };
324
- SinglyLinkedList.prototype.findNode = function (value) {
325
- var current = this.head;
236
+ }
237
+ findNode(value) {
238
+ let current = this.head;
326
239
  while (current) {
327
240
  if (current.val === value) {
328
241
  return current;
@@ -330,11 +243,11 @@ var SinglyLinkedList = (function () {
330
243
  current = current.next;
331
244
  }
332
245
  return null;
333
- };
334
- SinglyLinkedList.prototype.insertBefore = function (existingValueOrNode, newValue) {
246
+ }
247
+ insertBefore(existingValueOrNode, newValue) {
335
248
  if (!this.head)
336
249
  return false;
337
- var existingValue;
250
+ let existingValue;
338
251
  if (existingValueOrNode instanceof SinglyLinkedListNode) {
339
252
  existingValue = existingValueOrNode.val;
340
253
  }
@@ -345,10 +258,10 @@ var SinglyLinkedList = (function () {
345
258
  this.unshift(newValue);
346
259
  return true;
347
260
  }
348
- var current = this.head;
261
+ let current = this.head;
349
262
  while (current.next) {
350
263
  if (current.next.val === existingValue) {
351
- var newNode = new SinglyLinkedListNode(newValue);
264
+ const newNode = new SinglyLinkedListNode(newValue);
352
265
  newNode.next = current.next;
353
266
  current.next = newNode;
354
267
  this._length++;
@@ -357,9 +270,9 @@ var SinglyLinkedList = (function () {
357
270
  current = current.next;
358
271
  }
359
272
  return false;
360
- };
361
- SinglyLinkedList.prototype.insertAfter = function (existingValueOrNode, newValue) {
362
- var existingNode;
273
+ }
274
+ insertAfter(existingValueOrNode, newValue) {
275
+ let existingNode;
363
276
  if (existingValueOrNode instanceof SinglyLinkedListNode) {
364
277
  existingNode = existingValueOrNode;
365
278
  }
@@ -367,7 +280,7 @@ var SinglyLinkedList = (function () {
367
280
  existingNode = this.findNode(existingValueOrNode);
368
281
  }
369
282
  if (existingNode) {
370
- var newNode = new SinglyLinkedListNode(newValue);
283
+ const newNode = new SinglyLinkedListNode(newValue);
371
284
  newNode.next = existingNode.next;
372
285
  existingNode.next = newNode;
373
286
  if (existingNode === this.tail) {
@@ -377,10 +290,10 @@ var SinglyLinkedList = (function () {
377
290
  return true;
378
291
  }
379
292
  return false;
380
- };
381
- SinglyLinkedList.prototype.countOccurrences = function (value) {
382
- var count = 0;
383
- var current = this.head;
293
+ }
294
+ countOccurrences(value) {
295
+ let count = 0;
296
+ let current = this.head;
384
297
  while (current) {
385
298
  if (current.val === value) {
386
299
  count++;
@@ -388,26 +301,14 @@ var SinglyLinkedList = (function () {
388
301
  current = current.next;
389
302
  }
390
303
  return count;
391
- };
392
- SinglyLinkedList.prototype[Symbol.iterator] = function () {
393
- var current;
394
- return __generator(this, function (_a) {
395
- switch (_a.label) {
396
- case 0:
397
- current = this.head;
398
- _a.label = 1;
399
- case 1:
400
- if (!current) return [3, 3];
401
- return [4, current.val];
402
- case 2:
403
- _a.sent();
404
- current = current.next;
405
- return [3, 1];
406
- case 3: return [2];
407
- }
408
- });
409
- };
410
- return SinglyLinkedList;
411
- }());
304
+ }
305
+ *[Symbol.iterator]() {
306
+ let current = this.head;
307
+ while (current) {
308
+ yield current.val;
309
+ current = current.next;
310
+ }
311
+ }
312
+ }
412
313
  exports.SinglyLinkedList = SinglyLinkedList;
413
314
  //# sourceMappingURL=singly-linked-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"singly-linked-list.js","sourceRoot":"","sources":["../../../src/data-structures/linked-list/singly-linked-list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"singly-linked-list.js","sourceRoot":"","sources":["../../../src/data-structures/linked-list/singly-linked-list.ts"],"names":[],"mappings":"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"}