min-heap-typed 1.39.4 → 1.39.6

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 (47) hide show
  1. package/dist/data-structures/binary-tree/avl-tree.d.ts +6 -6
  2. package/dist/data-structures/binary-tree/avl-tree.js +13 -13
  3. package/dist/data-structures/binary-tree/binary-tree.d.ts +7 -7
  4. package/dist/data-structures/binary-tree/binary-tree.js +17 -17
  5. package/dist/data-structures/binary-tree/bst.d.ts +6 -6
  6. package/dist/data-structures/binary-tree/bst.js +13 -13
  7. package/dist/data-structures/binary-tree/rb-tree.d.ts +2 -2
  8. package/dist/data-structures/binary-tree/rb-tree.js +4 -4
  9. package/dist/data-structures/binary-tree/segment-tree.d.ts +7 -7
  10. package/dist/data-structures/binary-tree/segment-tree.js +16 -16
  11. package/dist/data-structures/binary-tree/tree-multiset.d.ts +6 -6
  12. package/dist/data-structures/binary-tree/tree-multiset.js +18 -18
  13. package/dist/data-structures/graph/abstract-graph.d.ts +96 -96
  14. package/dist/data-structures/graph/abstract-graph.js +64 -64
  15. package/dist/data-structures/graph/directed-graph.d.ts +68 -68
  16. package/dist/data-structures/graph/directed-graph.js +48 -48
  17. package/dist/data-structures/graph/map-graph.d.ts +13 -13
  18. package/dist/data-structures/graph/map-graph.js +15 -15
  19. package/dist/data-structures/graph/undirected-graph.d.ts +42 -42
  20. package/dist/data-structures/graph/undirected-graph.js +32 -32
  21. package/dist/data-structures/hash/hash-table.d.ts +4 -4
  22. package/dist/data-structures/hash/hash-table.js +8 -8
  23. package/dist/data-structures/linked-list/doubly-linked-list.d.ts +31 -31
  24. package/dist/data-structures/linked-list/doubly-linked-list.js +54 -54
  25. package/dist/data-structures/linked-list/singly-linked-list.d.ts +24 -24
  26. package/dist/data-structures/linked-list/singly-linked-list.js +52 -52
  27. package/dist/data-structures/queue/queue.d.ts +1 -1
  28. package/dist/data-structures/queue/queue.js +4 -4
  29. package/dist/interfaces/binary-tree.d.ts +2 -2
  30. package/dist/interfaces/graph.d.ts +3 -3
  31. package/package.json +2 -2
  32. package/src/data-structures/binary-tree/avl-tree.ts +13 -13
  33. package/src/data-structures/binary-tree/binary-tree.ts +18 -18
  34. package/src/data-structures/binary-tree/bst.ts +16 -16
  35. package/src/data-structures/binary-tree/rb-tree.ts +6 -6
  36. package/src/data-structures/binary-tree/segment-tree.ts +15 -15
  37. package/src/data-structures/binary-tree/tree-multiset.ts +18 -18
  38. package/src/data-structures/graph/abstract-graph.ts +156 -154
  39. package/src/data-structures/graph/directed-graph.ts +99 -94
  40. package/src/data-structures/graph/map-graph.ts +22 -25
  41. package/src/data-structures/graph/undirected-graph.ts +62 -60
  42. package/src/data-structures/hash/hash-table.ts +9 -9
  43. package/src/data-structures/linked-list/doubly-linked-list.ts +61 -61
  44. package/src/data-structures/linked-list/singly-linked-list.ts +58 -58
  45. package/src/data-structures/queue/queue.ts +2 -2
  46. package/src/interfaces/binary-tree.ts +2 -2
  47. package/src/interfaces/graph.ts +3 -3
@@ -11,18 +11,18 @@ exports.SinglyLinkedList = exports.SinglyLinkedListNode = void 0;
11
11
  class SinglyLinkedListNode {
12
12
  /**
13
13
  * The constructor function initializes an instance of a class with a given value and sets the next property to null.
14
- * @param {E} val - The "val" parameter is of type E, which means it can be any data type. It represents the value that
14
+ * @param {E} value - The "value" parameter is of type E, which means it can be any data type. It represents the value that
15
15
  * will be stored in the node of a linked list.
16
16
  */
17
- constructor(val) {
18
- this._val = val;
17
+ constructor(value) {
18
+ this._value = value;
19
19
  this._next = null;
20
20
  }
21
- get val() {
22
- return this._val;
21
+ get value() {
22
+ return this._value;
23
23
  }
24
- set val(value) {
25
- this._val = value;
24
+ set value(value) {
25
+ this._value = value;
26
26
  }
27
27
  get next() {
28
28
  return this._next;
@@ -70,12 +70,12 @@ class SinglyLinkedList {
70
70
  return singlyLinkedList;
71
71
  }
72
72
  /**
73
- * The `push` function adds a new node with the given val to the end of a singly linked list.
74
- * @param {E} val - The "val" parameter represents the value that you want to add to the linked list. It can be of
73
+ * The `push` function adds a new node with the given value to the end of a singly linked list.
74
+ * @param {E} value - The "value" parameter represents the value that you want to add to the linked list. It can be of
75
75
  * any type (E) as specified in the generic type declaration of the class or function.
76
76
  */
77
- push(val) {
78
- const newNode = new SinglyLinkedListNode(val);
77
+ push(value) {
78
+ const newNode = new SinglyLinkedListNode(value);
79
79
  if (!this.head) {
80
80
  this.head = newNode;
81
81
  this.tail = newNode;
@@ -87,12 +87,12 @@ class SinglyLinkedList {
87
87
  this._length++;
88
88
  }
89
89
  /**
90
- * The `push` function adds a new node with the given val to the end of a singly linked list.
91
- * @param {E} val - The "val" parameter represents the value that you want to add to the linked list. It can be of
90
+ * The `push` function adds a new node with the given value to the end of a singly linked list.
91
+ * @param {E} value - The "value" parameter represents the value that you want to add to the linked list. It can be of
92
92
  * any type (E) as specified in the generic type declaration of the class or function.
93
93
  */
94
- addLast(val) {
95
- this.push(val);
94
+ addLast(value) {
95
+ this.push(value);
96
96
  }
97
97
  /**
98
98
  * The `pop()` function removes and returns the value of the last element in a linked list, updating the head and tail
@@ -104,21 +104,21 @@ class SinglyLinkedList {
104
104
  if (!this.head)
105
105
  return undefined;
106
106
  if (this.head === this.tail) {
107
- const val = this.head.val;
107
+ const value = this.head.value;
108
108
  this.head = null;
109
109
  this.tail = null;
110
110
  this._length--;
111
- return val;
111
+ return value;
112
112
  }
113
113
  let current = this.head;
114
114
  while (current.next !== this.tail) {
115
115
  current = current.next;
116
116
  }
117
- const val = this.tail.val;
117
+ const value = this.tail.value;
118
118
  current.next = null;
119
119
  this.tail = current;
120
120
  this._length--;
121
- return val;
121
+ return value;
122
122
  }
123
123
  /**
124
124
  * The `popLast()` function removes and returns the value of the last element in a linked list, updating the head and tail
@@ -139,7 +139,7 @@ class SinglyLinkedList {
139
139
  const removedNode = this.head;
140
140
  this.head = this.head.next;
141
141
  this._length--;
142
- return removedNode.val;
142
+ return removedNode.value;
143
143
  }
144
144
  /**
145
145
  * The `popFirst()` function removes and returns the value of the first node in a linked list.
@@ -150,11 +150,11 @@ class SinglyLinkedList {
150
150
  }
151
151
  /**
152
152
  * The unshift function adds a new node with the given value to the beginning of a singly linked list.
153
- * @param {E} val - The parameter "val" represents the value of the new node that will be added to the beginning of the
153
+ * @param {E} value - The parameter "value" represents the value of the new node that will be added to the beginning of the
154
154
  * linked list.
155
155
  */
156
- unshift(val) {
157
- const newNode = new SinglyLinkedListNode(val);
156
+ unshift(value) {
157
+ const newNode = new SinglyLinkedListNode(value);
158
158
  if (!this.head) {
159
159
  this.head = newNode;
160
160
  this.tail = newNode;
@@ -167,11 +167,11 @@ class SinglyLinkedList {
167
167
  }
168
168
  /**
169
169
  * The addFirst function adds a new node with the given value to the beginning of a singly linked list.
170
- * @param {E} val - The parameter "val" represents the value of the new node that will be added to the beginning of the
170
+ * @param {E} value - The parameter "value" represents the value of the new node that will be added to the beginning of the
171
171
  * linked list.
172
172
  */
173
- addFirst(val) {
174
- this.unshift(val);
173
+ addFirst(value) {
174
+ this.unshift(value);
175
175
  }
176
176
  /**
177
177
  * The function `getAt` returns the value at a specified index in a linked list, or null if the index is out of range.
@@ -187,7 +187,7 @@ class SinglyLinkedList {
187
187
  for (let i = 0; i < index; i++) {
188
188
  current = current.next;
189
189
  }
190
- return current.val;
190
+ return current.value;
191
191
  }
192
192
  /**
193
193
  * The function `getNodeAt` returns the node at a given index in a singly linked list.
@@ -221,7 +221,7 @@ class SinglyLinkedList {
221
221
  const removedNode = prevNode.next;
222
222
  prevNode.next = removedNode.next;
223
223
  this._length--;
224
- return removedNode.val;
224
+ return removedNode.value;
225
225
  }
226
226
  /**
227
227
  * The delete function removes a node with a specific value from a singly linked list.
@@ -235,14 +235,14 @@ class SinglyLinkedList {
235
235
  return false;
236
236
  let value;
237
237
  if (valueOrNode instanceof SinglyLinkedListNode) {
238
- value = valueOrNode.val;
238
+ value = valueOrNode.value;
239
239
  }
240
240
  else {
241
241
  value = valueOrNode;
242
242
  }
243
243
  let current = this.head, prev = null;
244
244
  while (current) {
245
- if (current.val === value) {
245
+ if (current.value === value) {
246
246
  if (prev === null) {
247
247
  this.head = current.next;
248
248
  if (current === this.tail) {
@@ -267,23 +267,23 @@ class SinglyLinkedList {
267
267
  * The `insertAt` function inserts a value at a specified index in a singly linked list.
268
268
  * @param {number} index - The index parameter represents the position at which the new value should be inserted in the
269
269
  * linked list. It is of type number.
270
- * @param {E} val - The `val` parameter represents the value that you want to insert into the linked list at the
270
+ * @param {E} value - The `value` parameter represents the value that you want to insert into the linked list at the
271
271
  * specified index.
272
272
  * @returns The `insert` method returns a boolean value. It returns `true` if the insertion is successful, and `false`
273
273
  * if the index is out of bounds.
274
274
  */
275
- insertAt(index, val) {
275
+ insertAt(index, value) {
276
276
  if (index < 0 || index > this.length)
277
277
  return false;
278
278
  if (index === 0) {
279
- this.unshift(val);
279
+ this.unshift(value);
280
280
  return true;
281
281
  }
282
282
  if (index === this.length) {
283
- this.push(val);
283
+ this.push(value);
284
284
  return true;
285
285
  }
286
- const newNode = new SinglyLinkedListNode(val);
286
+ const newNode = new SinglyLinkedListNode(value);
287
287
  const prevNode = this.getNodeAt(index - 1);
288
288
  newNode.next = prevNode.next;
289
289
  prevNode.next = newNode;
@@ -314,7 +314,7 @@ class SinglyLinkedList {
314
314
  const array = [];
315
315
  let current = this.head;
316
316
  while (current) {
317
- array.push(current.val);
317
+ array.push(current.value);
318
318
  current = current.next;
319
319
  }
320
320
  return array;
@@ -347,8 +347,8 @@ class SinglyLinkedList {
347
347
  find(callback) {
348
348
  let current = this.head;
349
349
  while (current) {
350
- if (callback(current.val)) {
351
- return current.val;
350
+ if (callback(current.value)) {
351
+ return current.value;
352
352
  }
353
353
  current = current.next;
354
354
  }
@@ -364,7 +364,7 @@ class SinglyLinkedList {
364
364
  let index = 0;
365
365
  let current = this.head;
366
366
  while (current) {
367
- if (current.val === value) {
367
+ if (current.value === value) {
368
368
  return index;
369
369
  }
370
370
  index++;
@@ -382,7 +382,7 @@ class SinglyLinkedList {
382
382
  getNode(value) {
383
383
  let current = this.head;
384
384
  while (current) {
385
- if (current.val === value) {
385
+ if (current.value === value) {
386
386
  return current;
387
387
  }
388
388
  current = current.next;
@@ -402,18 +402,18 @@ class SinglyLinkedList {
402
402
  return false;
403
403
  let existingValue;
404
404
  if (existingValueOrNode instanceof SinglyLinkedListNode) {
405
- existingValue = existingValueOrNode.val;
405
+ existingValue = existingValueOrNode.value;
406
406
  }
407
407
  else {
408
408
  existingValue = existingValueOrNode;
409
409
  }
410
- if (this.head.val === existingValue) {
410
+ if (this.head.value === existingValue) {
411
411
  this.unshift(newValue);
412
412
  return true;
413
413
  }
414
414
  let current = this.head;
415
415
  while (current.next) {
416
- if (current.next.val === existingValue) {
416
+ if (current.next.value === existingValue) {
417
417
  const newNode = new SinglyLinkedListNode(newValue);
418
418
  newNode.next = current.next;
419
419
  current.next = newNode;
@@ -461,7 +461,7 @@ class SinglyLinkedList {
461
461
  let count = 0;
462
462
  let current = this.head;
463
463
  while (current) {
464
- if (current.val === value) {
464
+ if (current.value === value) {
465
465
  count++;
466
466
  }
467
467
  current = current.next;
@@ -470,7 +470,7 @@ class SinglyLinkedList {
470
470
  }
471
471
  /**
472
472
  * The `forEach` function iterates over each element in a linked list and applies a callback function to each element.
473
- * @param callback - The callback parameter is a function that takes two arguments: val and index. The val argument
473
+ * @param callback - The callback parameter is a function that takes two arguments: value and index. The value argument
474
474
  * represents the value of the current node in the linked list, and the index argument represents the index of the
475
475
  * current node in the linked list.
476
476
  */
@@ -478,7 +478,7 @@ class SinglyLinkedList {
478
478
  let current = this.head;
479
479
  let index = 0;
480
480
  while (current) {
481
- callback(current.val, index);
481
+ callback(current.value, index);
482
482
  current = current.next;
483
483
  index++;
484
484
  }
@@ -495,7 +495,7 @@ class SinglyLinkedList {
495
495
  const mappedList = new SinglyLinkedList();
496
496
  let current = this.head;
497
497
  while (current) {
498
- mappedList.push(callback(current.val));
498
+ mappedList.push(callback(current.value));
499
499
  current = current.next;
500
500
  }
501
501
  return mappedList;
@@ -511,8 +511,8 @@ class SinglyLinkedList {
511
511
  const filteredList = new SinglyLinkedList();
512
512
  let current = this.head;
513
513
  while (current) {
514
- if (callback(current.val)) {
515
- filteredList.push(current.val);
514
+ if (callback(current.value)) {
515
+ filteredList.push(current.value);
516
516
  }
517
517
  current = current.next;
518
518
  }
@@ -521,7 +521,7 @@ class SinglyLinkedList {
521
521
  /**
522
522
  * The `reduce` function iterates over a linked list and applies a callback function to each element, accumulating a
523
523
  * single value.
524
- * @param callback - The `callback` parameter is a function that takes two arguments: `accumulator` and `val`. It is
524
+ * @param callback - The `callback` parameter is a function that takes two arguments: `accumulator` and `value`. It is
525
525
  * used to perform a specific operation on each element of the linked list.
526
526
  * @param {U} initialValue - The `initialValue` parameter is the initial value of the accumulator. It is the starting
527
527
  * point for the reduction operation.
@@ -532,7 +532,7 @@ class SinglyLinkedList {
532
532
  let accumulator = initialValue;
533
533
  let current = this.head;
534
534
  while (current) {
535
- accumulator = callback(accumulator, current.val);
535
+ accumulator = callback(accumulator, current.value);
536
536
  current = current.next;
537
537
  }
538
538
  return accumulator;
@@ -543,7 +543,7 @@ class SinglyLinkedList {
543
543
  *[Symbol.iterator]() {
544
544
  let current = this.head;
545
545
  while (current) {
546
- yield current.val;
546
+ yield current.value;
547
547
  current = current.next;
548
548
  }
549
549
  }
@@ -4,7 +4,7 @@
4
4
  * @class
5
5
  */
6
6
  import { SinglyLinkedList } from '../linked-list';
7
- export declare class LinkedListQueue<E = any> extends SinglyLinkedList<E> {
7
+ export declare class SkipQueue<E = any> extends SinglyLinkedList<E> {
8
8
  /**
9
9
  * The enqueue function adds a value to the end of an array.
10
10
  * @param {E} value - The value parameter represents the value that you want to add to the queue.
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Queue = exports.LinkedListQueue = void 0;
3
+ exports.Queue = exports.SkipQueue = void 0;
4
4
  /**
5
5
  * @license MIT
6
6
  * @copyright Tyler Zeng <zrwusa@gmail.com>
7
7
  * @class
8
8
  */
9
9
  const linked_list_1 = require("../linked-list");
10
- class LinkedListQueue extends linked_list_1.SinglyLinkedList {
10
+ class SkipQueue extends linked_list_1.SinglyLinkedList {
11
11
  /**
12
12
  * The enqueue function adds a value to the end of an array.
13
13
  * @param {E} value - The value parameter represents the value that you want to add to the queue.
@@ -28,10 +28,10 @@ class LinkedListQueue extends linked_list_1.SinglyLinkedList {
28
28
  */
29
29
  peek() {
30
30
  var _a;
31
- return (_a = this.head) === null || _a === void 0 ? void 0 : _a.val;
31
+ return (_a = this.head) === null || _a === void 0 ? void 0 : _a.value;
32
32
  }
33
33
  }
34
- exports.LinkedListQueue = LinkedListQueue;
34
+ exports.SkipQueue = SkipQueue;
35
35
  class Queue {
36
36
  /**
37
37
  * The constructor initializes an instance of a class with an optional array of elements and sets the offset to 0.
@@ -1,7 +1,7 @@
1
1
  import { BinaryTreeNode } from '../data-structures';
2
2
  import { BinaryTreeDeletedResult, BTNKey, BinaryTreeNodeNested, BTNCallback } from '../types';
3
3
  export interface IBinaryTree<V = any, N extends BinaryTreeNode<V, N> = BinaryTreeNodeNested<V>> {
4
- createNode(key: BTNKey, val?: N['val']): N;
5
- add(keyOrNode: BTNKey | N | null, val?: N['val']): N | null | undefined;
4
+ createNode(key: BTNKey, value?: N['value']): N;
5
+ add(keyOrNode: BTNKey | N | null, value?: N['value']): N | null | undefined;
6
6
  delete<C extends BTNCallback<N>>(identifier: ReturnType<C> | null, callback: C): BinaryTreeDeletedResult<N>[];
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import { VertexKey } from '../types';
2
- export interface IGraph<V, E> {
3
- createVertex(key: VertexKey, val?: V): V;
4
- createEdge(srcOrV1: VertexKey | string, destOrV2: VertexKey | string, weight?: number, val?: E): E;
2
+ export interface IGraph<V, E, VO, EO> {
3
+ createVertex(key: VertexKey, value?: V): VO;
4
+ createEdge(srcOrV1: VertexKey, destOrV2: VertexKey, weight?: number, value?: E): EO;
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "min-heap-typed",
3
- "version": "1.39.4",
3
+ "version": "1.39.6",
4
4
  "description": "Min Heap. Javascript & Typescript Data Structure.",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -131,6 +131,6 @@
131
131
  "typescript": "^4.9.5"
132
132
  },
133
133
  "dependencies": {
134
- "data-structure-typed": "^1.39.4"
134
+ "data-structure-typed": "^1.39.6"
135
135
  }
136
136
  }
@@ -13,8 +13,8 @@ import {IBinaryTree} from '../../interfaces';
13
13
  export class AVLTreeNode<V = any, N extends AVLTreeNode<V, N> = AVLTreeNodeNested<V>> extends BSTNode<V, N> {
14
14
  height: number;
15
15
 
16
- constructor(key: BTNKey, val?: V) {
17
- super(key, val);
16
+ constructor(key: BTNKey, value?: V) {
17
+ super(key, value);
18
18
  this.height = 0;
19
19
  }
20
20
  }
@@ -37,13 +37,13 @@ export class AVLTree<V = any, N extends AVLTreeNode<V, N> = AVLTreeNode<V, AVLTr
37
37
  * The function creates a new AVL tree node with the specified key and value.
38
38
  * @param {BTNKey} key - The key parameter is the key value that will be associated with
39
39
  * the new node. It is used to determine the position of the node in the binary search tree.
40
- * @param [val] - The parameter `val` is an optional value that can be assigned to the node. It is of
41
- * type `V`, which means it can be any value that is assignable to the `val` property of the
40
+ * @param [value] - The parameter `value` is an optional value that can be assigned to the node. It is of
41
+ * type `V`, which means it can be any value that is assignable to the `value` property of the
42
42
  * node type `N`.
43
43
  * @returns a new AVLTreeNode object with the specified key and value.
44
44
  */
45
- override createNode(key: BTNKey, val?: V): N {
46
- return new AVLTreeNode<V, N>(key, val) as N;
45
+ override createNode(key: BTNKey, value?: V): N {
46
+ return new AVLTreeNode<V, N>(key, value) as N;
47
47
  }
48
48
 
49
49
  /**
@@ -51,13 +51,13 @@ export class AVLTree<V = any, N extends AVLTreeNode<V, N> = AVLTreeNode<V, AVLTr
51
51
  * a new node.
52
52
  * @param {BTNKey | N | null} keyOrNode - The `keyOrNode` parameter can accept either a
53
53
  * `BTNKey` or a `N` (which represents a node in the binary tree) or `null`.
54
- * @param [val] - The `val` parameter is the value that you want to assign to the new node that you
54
+ * @param [value] - The `value` parameter is the value that you want to assign to the new node that you
55
55
  * are adding to the binary search tree.
56
56
  * @returns The method is returning the inserted node (`N`), `null`, or `undefined`.
57
57
  */
58
- override add(keyOrNode: BTNKey | N | null, val?: V): N | null | undefined {
58
+ override add(keyOrNode: BTNKey | N | null, value?: V): N | null | undefined {
59
59
  // TODO support node as a param
60
- const inserted = super.add(keyOrNode, val);
60
+ const inserted = super.add(keyOrNode, value);
61
61
  if (inserted) this._balancePath(inserted);
62
62
  return inserted;
63
63
  }
@@ -97,18 +97,18 @@ export class AVLTree<V = any, N extends AVLTreeNode<V, N> = AVLTreeNode<V, AVLTr
97
97
  * @returns The method is returning the `destNode` after swapping its properties with the `srcNode`.
98
98
  */
99
99
  protected override _swap(srcNode: N, destNode: N): N {
100
- const {key, val, height} = destNode;
101
- const tempNode = this.createNode(key, val);
100
+ const {key, value, height} = destNode;
101
+ const tempNode = this.createNode(key, value);
102
102
 
103
103
  if (tempNode) {
104
104
  tempNode.height = height;
105
105
 
106
106
  destNode.key = srcNode.key;
107
- destNode.val = srcNode.val;
107
+ destNode.value = srcNode.value;
108
108
  destNode.height = srcNode.height;
109
109
 
110
110
  srcNode.key = tempNode.key;
111
- srcNode.val = tempNode.val;
111
+ srcNode.value = tempNode.value;
112
112
  srcNode.height = tempNode.height;
113
113
  }
114
114
 
@@ -26,7 +26,7 @@ export class BinaryTreeNode<V = any, N extends BinaryTreeNode<V, N> = BinaryTree
26
26
  /**
27
27
  * The value stored in the node.
28
28
  */
29
- val: V | undefined;
29
+ value: V | undefined;
30
30
 
31
31
  /**
32
32
  * The parent node of the current node.
@@ -36,11 +36,11 @@ export class BinaryTreeNode<V = any, N extends BinaryTreeNode<V, N> = BinaryTree
36
36
  /**
37
37
  * Creates a new instance of BinaryTreeNode.
38
38
  * @param {BTNKey} key - The key associated with the node.
39
- * @param {V} val - The value stored in the node.
39
+ * @param {V} value - The value stored in the node.
40
40
  */
41
- constructor(key: BTNKey, val?: V) {
41
+ constructor(key: BTNKey, value?: V) {
42
42
  this.key = key;
43
- this.val = val;
43
+ this.value = value;
44
44
  }
45
45
 
46
46
  private _left: N | null | undefined;
@@ -159,11 +159,11 @@ export class BinaryTree<V = any, N extends BinaryTreeNode<V, N> = BinaryTreeNode
159
159
  /**
160
160
  * Creates a new instance of BinaryTreeNode with the given key and value.
161
161
  * @param {BTNKey} key - The key for the new node.
162
- * @param {V} val - The value for the new node.
162
+ * @param {V} value - The value for the new node.
163
163
  * @returns {N} - The newly created BinaryTreeNode.
164
164
  */
165
- createNode(key: BTNKey, val?: V): N {
166
- return new BinaryTreeNode<V, N>(key, val) as N;
165
+ createNode(key: BTNKey, value?: V): N {
166
+ return new BinaryTreeNode<V, N>(key, value) as N;
167
167
  }
168
168
 
169
169
  /**
@@ -185,10 +185,10 @@ export class BinaryTree<V = any, N extends BinaryTreeNode<V, N> = BinaryTreeNode
185
185
  /**
186
186
  * Add a node with the given key and value to the binary tree.
187
187
  * @param {BTNKey | N | null} keyOrNode - The key or node to add to the binary tree.
188
- * @param {V} val - The value for the new node (optional).
188
+ * @param {V} value - The value for the new node (optional).
189
189
  * @returns {N | null | undefined} - The inserted node, or null if nothing was inserted, or undefined if the operation failed.
190
190
  */
191
- add(keyOrNode: BTNKey | N | null, val?: V): N | null | undefined {
191
+ add(keyOrNode: BTNKey | N | null, value?: V): N | null | undefined {
192
192
  const _bfs = (root: N, newNode: N | null): N | undefined | null => {
193
193
  const queue = new Queue<N | null>([root]);
194
194
  while (queue.size > 0) {
@@ -209,7 +209,7 @@ export class BinaryTree<V = any, N extends BinaryTreeNode<V, N> = BinaryTreeNode
209
209
  if (keyOrNode === null) {
210
210
  needInsert = null;
211
211
  } else if (typeof keyOrNode === 'number') {
212
- needInsert = this.createNode(keyOrNode, val);
212
+ needInsert = this.createNode(keyOrNode, value);
213
213
  } else if (keyOrNode instanceof BinaryTreeNode) {
214
214
  needInsert = keyOrNode;
215
215
  } else {
@@ -221,7 +221,7 @@ export class BinaryTree<V = any, N extends BinaryTreeNode<V, N> = BinaryTreeNode
221
221
 
222
222
  if (this.root) {
223
223
  if (existNode) {
224
- existNode.val = val;
224
+ existNode.value = value;
225
225
  inserted = existNode;
226
226
  } else {
227
227
  inserted = _bfs(this.root, needInsert);
@@ -252,15 +252,15 @@ export class BinaryTree<V = any, N extends BinaryTreeNode<V, N> = BinaryTreeNode
252
252
  // TODO not sure addMany not be run multi times
253
253
  return keysOrNodes.map((keyOrNode, i) => {
254
254
  if (keyOrNode instanceof BinaryTreeNode) {
255
- return this.add(keyOrNode.key, keyOrNode.val);
255
+ return this.add(keyOrNode.key, keyOrNode.value);
256
256
  }
257
257
 
258
258
  if (keyOrNode === null) {
259
259
  return this.add(null);
260
260
  }
261
261
 
262
- const val = values?.[i];
263
- return this.add(keyOrNode, val);
262
+ const value = values?.[i];
263
+ return this.add(keyOrNode, value);
264
264
  });
265
265
  }
266
266
 
@@ -1212,15 +1212,15 @@ export class BinaryTree<V = any, N extends BinaryTreeNode<V, N> = BinaryTreeNode
1212
1212
  * @returns {N} - The destination node after the swap.
1213
1213
  */
1214
1214
  protected _swap(srcNode: N, destNode: N): N {
1215
- const {key, val} = destNode;
1216
- const tempNode = this.createNode(key, val);
1215
+ const {key, value} = destNode;
1216
+ const tempNode = this.createNode(key, value);
1217
1217
 
1218
1218
  if (tempNode) {
1219
1219
  destNode.key = srcNode.key;
1220
- destNode.val = srcNode.val;
1220
+ destNode.value = srcNode.value;
1221
1221
 
1222
1222
  srcNode.key = tempNode.key;
1223
- srcNode.val = tempNode.val;
1223
+ srcNode.value = tempNode.value;
1224
1224
  }
1225
1225
 
1226
1226
  return destNode;