data-structure-typed 1.18.6 → 1.18.8
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/README.md +154 -366
- package/dist/data-structures/binary-tree/abstract-binary-tree.d.ts +72 -51
- package/dist/data-structures/binary-tree/abstract-binary-tree.js +226 -158
- package/dist/data-structures/binary-tree/avl-tree.d.ts +7 -6
- package/dist/data-structures/binary-tree/avl-tree.js +5 -3
- package/dist/data-structures/binary-tree/binary-tree.d.ts +16 -6
- package/dist/data-structures/binary-tree/binary-tree.js +16 -7
- package/dist/data-structures/binary-tree/bst.d.ts +37 -28
- package/dist/data-structures/binary-tree/bst.js +44 -76
- package/dist/data-structures/binary-tree/rb-tree.d.ts +30 -1
- package/dist/data-structures/binary-tree/rb-tree.js +27 -14
- package/dist/data-structures/binary-tree/tree-multiset.d.ts +18 -7
- package/dist/data-structures/binary-tree/tree-multiset.js +20 -15
- package/dist/data-structures/graph/abstract-graph.d.ts +28 -27
- package/dist/data-structures/graph/abstract-graph.js +58 -36
- package/dist/data-structures/graph/directed-graph.d.ts +27 -24
- package/dist/data-structures/graph/directed-graph.js +65 -60
- package/dist/data-structures/graph/undirected-graph.d.ts +12 -18
- package/dist/data-structures/graph/undirected-graph.js +52 -65
- package/dist/data-structures/interfaces/abstract-binary-tree.d.ts +100 -0
- package/dist/data-structures/interfaces/abstract-binary-tree.js +2 -0
- package/dist/data-structures/interfaces/abstract-graph.d.ts +3 -8
- package/dist/data-structures/interfaces/avl-tree.d.ts +16 -1
- package/dist/data-structures/interfaces/binary-tree.d.ts +4 -24
- package/dist/data-structures/interfaces/bst.d.ts +18 -1
- package/dist/data-structures/interfaces/directed-graph.d.ts +4 -1
- package/dist/data-structures/interfaces/index.d.ts +1 -1
- package/dist/data-structures/interfaces/index.js +1 -1
- package/dist/data-structures/interfaces/rb-tree.d.ts +9 -0
- package/dist/data-structures/interfaces/rb-tree.js +2 -0
- package/dist/data-structures/interfaces/tree-multiset.d.ts +7 -1
- package/dist/data-structures/interfaces/undirected-graph.d.ts +4 -1
- package/dist/data-structures/tree/tree.d.ts +1 -4
- package/dist/data-structures/tree/tree.js +1 -12
- package/dist/data-structures/types/abstract-binary-tree.d.ts +11 -7
- package/dist/data-structures/types/abstract-binary-tree.js +9 -5
- package/dist/data-structures/types/avl-tree.d.ts +1 -1
- package/dist/data-structures/types/binary-tree.d.ts +1 -1
- package/dist/data-structures/types/bst.d.ts +1 -1
- package/dist/data-structures/types/bst.js +1 -1
- package/dist/data-structures/types/directed-graph.js +1 -1
- package/dist/data-structures/types/helpers.d.ts +1 -8
- package/dist/data-structures/types/rb-tree.d.ts +2 -0
- package/dist/data-structures/types/rb-tree.js +1 -1
- package/dist/data-structures/types/tree-multiset.d.ts +4 -4
- package/dist/utils/types/utils.d.ts +18 -0
- package/dist/utils/utils.d.ts +6 -1
- package/dist/utils/utils.js +83 -1
- package/package.json +2 -2
- package/backup/recursive-type/src/assets/complexities-diff.jpg +0 -0
- package/backup/recursive-type/src/assets/data-structure-complexities.jpg +0 -0
- package/backup/recursive-type/src/assets/logo.png +0 -0
- package/backup/recursive-type/src/assets/overview-diagram-of-data-structures.png +0 -0
- package/backup/recursive-type/src/data-structures/binary-tree/aa-tree.ts +0 -3
- package/backup/recursive-type/src/data-structures/binary-tree/avl-tree.ts +0 -288
- package/backup/recursive-type/src/data-structures/binary-tree/b-tree.ts +0 -3
- package/backup/recursive-type/src/data-structures/binary-tree/binary-indexed-tree.ts +0 -78
- package/backup/recursive-type/src/data-structures/binary-tree/binary-tree.ts +0 -1502
- package/backup/recursive-type/src/data-structures/binary-tree/bst.ts +0 -503
- package/backup/recursive-type/src/data-structures/binary-tree/diagrams/avl-tree-inserting.gif +0 -0
- package/backup/recursive-type/src/data-structures/binary-tree/diagrams/bst-rotation.gif +0 -0
- package/backup/recursive-type/src/data-structures/binary-tree/diagrams/segment-tree.png +0 -0
- package/backup/recursive-type/src/data-structures/binary-tree/index.ts +0 -11
- package/backup/recursive-type/src/data-structures/binary-tree/rb-tree.ts +0 -110
- package/backup/recursive-type/src/data-structures/binary-tree/segment-tree.ts +0 -243
- package/backup/recursive-type/src/data-structures/binary-tree/splay-tree.ts +0 -3
- package/backup/recursive-type/src/data-structures/binary-tree/tree-multiset.ts +0 -55
- package/backup/recursive-type/src/data-structures/binary-tree/two-three-tree.ts +0 -3
- package/backup/recursive-type/src/data-structures/diagrams/README.md +0 -5
- package/backup/recursive-type/src/data-structures/graph/abstract-graph.ts +0 -985
- package/backup/recursive-type/src/data-structures/graph/diagrams/adjacency-list-pros-cons.jpg +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/adjacency-list.jpg +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/adjacency-matrix-pros-cons.jpg +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/adjacency-matrix.jpg +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/dfs-can-do.jpg +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/edge-list-pros-cons.jpg +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/edge-list.jpg +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/max-flow.jpg +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/mst.jpg +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/tarjan-articulation-point-bridge.png +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/tarjan-complicate-simple.png +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/tarjan-strongly-connected-component.png +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/tarjan.mp4 +0 -0
- package/backup/recursive-type/src/data-structures/graph/diagrams/tarjan.webp +0 -0
- package/backup/recursive-type/src/data-structures/graph/directed-graph.ts +0 -478
- package/backup/recursive-type/src/data-structures/graph/index.ts +0 -3
- package/backup/recursive-type/src/data-structures/graph/undirected-graph.ts +0 -293
- package/backup/recursive-type/src/data-structures/hash/coordinate-map.ts +0 -67
- package/backup/recursive-type/src/data-structures/hash/coordinate-set.ts +0 -56
- package/backup/recursive-type/src/data-structures/hash/hash-table.ts +0 -3
- package/backup/recursive-type/src/data-structures/hash/index.ts +0 -6
- package/backup/recursive-type/src/data-structures/hash/pair.ts +0 -3
- package/backup/recursive-type/src/data-structures/hash/tree-map.ts +0 -3
- package/backup/recursive-type/src/data-structures/hash/tree-set.ts +0 -3
- package/backup/recursive-type/src/data-structures/heap/heap.ts +0 -176
- package/backup/recursive-type/src/data-structures/heap/index.ts +0 -3
- package/backup/recursive-type/src/data-structures/heap/max-heap.ts +0 -31
- package/backup/recursive-type/src/data-structures/heap/min-heap.ts +0 -34
- package/backup/recursive-type/src/data-structures/index.ts +0 -15
- package/backup/recursive-type/src/data-structures/interfaces/abstract-graph.ts +0 -42
- package/backup/recursive-type/src/data-structures/interfaces/avl-tree.ts +0 -1
- package/backup/recursive-type/src/data-structures/interfaces/binary-tree.ts +0 -56
- package/backup/recursive-type/src/data-structures/interfaces/bst.ts +0 -1
- package/backup/recursive-type/src/data-structures/interfaces/directed-graph.ts +0 -15
- package/backup/recursive-type/src/data-structures/interfaces/doubly-linked-list.ts +0 -1
- package/backup/recursive-type/src/data-structures/interfaces/heap.ts +0 -1
- package/backup/recursive-type/src/data-structures/interfaces/index.ts +0 -13
- package/backup/recursive-type/src/data-structures/interfaces/navigator.ts +0 -1
- package/backup/recursive-type/src/data-structures/interfaces/priority-queue.ts +0 -1
- package/backup/recursive-type/src/data-structures/interfaces/segment-tree.ts +0 -1
- package/backup/recursive-type/src/data-structures/interfaces/singly-linked-list.ts +0 -1
- package/backup/recursive-type/src/data-structures/interfaces/tree-multiset.ts +0 -1
- package/backup/recursive-type/src/data-structures/interfaces/undirected-graph.ts +0 -3
- package/backup/recursive-type/src/data-structures/linked-list/doubly-linked-list.ts +0 -573
- package/backup/recursive-type/src/data-structures/linked-list/index.ts +0 -3
- package/backup/recursive-type/src/data-structures/linked-list/singly-linked-list.ts +0 -490
- package/backup/recursive-type/src/data-structures/linked-list/skip-linked-list.ts +0 -3
- package/backup/recursive-type/src/data-structures/matrix/index.ts +0 -4
- package/backup/recursive-type/src/data-structures/matrix/matrix.ts +0 -27
- package/backup/recursive-type/src/data-structures/matrix/matrix2d.ts +0 -208
- package/backup/recursive-type/src/data-structures/matrix/navigator.ts +0 -122
- package/backup/recursive-type/src/data-structures/matrix/vector2d.ts +0 -316
- package/backup/recursive-type/src/data-structures/priority-queue/index.ts +0 -3
- package/backup/recursive-type/src/data-structures/priority-queue/max-priority-queue.ts +0 -49
- package/backup/recursive-type/src/data-structures/priority-queue/min-priority-queue.ts +0 -50
- package/backup/recursive-type/src/data-structures/priority-queue/priority-queue.ts +0 -354
- package/backup/recursive-type/src/data-structures/queue/deque.ts +0 -251
- package/backup/recursive-type/src/data-structures/queue/index.ts +0 -2
- package/backup/recursive-type/src/data-structures/queue/queue.ts +0 -120
- package/backup/recursive-type/src/data-structures/stack/index.ts +0 -1
- package/backup/recursive-type/src/data-structures/stack/stack.ts +0 -98
- package/backup/recursive-type/src/data-structures/tree/index.ts +0 -1
- package/backup/recursive-type/src/data-structures/tree/tree.ts +0 -80
- package/backup/recursive-type/src/data-structures/trie/index.ts +0 -1
- package/backup/recursive-type/src/data-structures/trie/trie.ts +0 -227
- package/backup/recursive-type/src/data-structures/types/abstract-graph.ts +0 -5
- package/backup/recursive-type/src/data-structures/types/avl-tree.ts +0 -8
- package/backup/recursive-type/src/data-structures/types/binary-tree.ts +0 -10
- package/backup/recursive-type/src/data-structures/types/bst.ts +0 -6
- package/backup/recursive-type/src/data-structures/types/directed-graph.ts +0 -8
- package/backup/recursive-type/src/data-structures/types/doubly-linked-list.ts +0 -1
- package/backup/recursive-type/src/data-structures/types/heap.ts +0 -5
- package/backup/recursive-type/src/data-structures/types/index.ts +0 -12
- package/backup/recursive-type/src/data-structures/types/navigator.ts +0 -13
- package/backup/recursive-type/src/data-structures/types/priority-queue.ts +0 -9
- package/backup/recursive-type/src/data-structures/types/segment-tree.ts +0 -1
- package/backup/recursive-type/src/data-structures/types/singly-linked-list.ts +0 -1
- package/backup/recursive-type/src/data-structures/types/tree-multiset.ts +0 -1
- package/backup/recursive-type/src/index.ts +0 -1
- package/backup/recursive-type/src/utils/index.ts +0 -2
- package/backup/recursive-type/src/utils/types/index.ts +0 -1
- package/backup/recursive-type/src/utils/types/utils.ts +0 -6
- package/backup/recursive-type/src/utils/utils.ts +0 -78
- package/docs/.nojekyll +0 -1
- package/docs/assets/highlight.css +0 -92
- package/docs/assets/main.js +0 -58
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1367
- package/docs/classes/AVLTree.html +0 -2339
- package/docs/classes/AVLTreeNode.html +0 -450
- package/docs/classes/AaTree.html +0 -166
- package/docs/classes/AbstractBinaryTree.html +0 -2023
- package/docs/classes/AbstractBinaryTreeNode.html +0 -491
- package/docs/classes/AbstractEdge.html +0 -289
- package/docs/classes/AbstractGraph.html +0 -1046
- package/docs/classes/AbstractVertex.html +0 -252
- package/docs/classes/ArrayDeque.html +0 -433
- package/docs/classes/BST.html +0 -2196
- package/docs/classes/BSTNode.html +0 -453
- package/docs/classes/BTree.html +0 -166
- package/docs/classes/BinaryIndexedTree.html +0 -335
- package/docs/classes/BinaryTree.html +0 -2037
- package/docs/classes/BinaryTreeNode.html +0 -452
- package/docs/classes/Character.html +0 -214
- package/docs/classes/CoordinateMap.html +0 -477
- package/docs/classes/CoordinateSet.html +0 -438
- package/docs/classes/Deque.html +0 -969
- package/docs/classes/DirectedEdge.html +0 -360
- package/docs/classes/DirectedGraph.html +0 -1408
- package/docs/classes/DirectedVertex.html +0 -248
- package/docs/classes/DoublyLinkedList.html +0 -962
- package/docs/classes/DoublyLinkedListNode.html +0 -291
- package/docs/classes/HashTable.html +0 -166
- package/docs/classes/Heap.html +0 -417
- package/docs/classes/HeapItem.html +0 -249
- package/docs/classes/Matrix2D.html +0 -496
- package/docs/classes/MatrixNTI2D.html +0 -234
- package/docs/classes/MaxHeap.html +0 -430
- package/docs/classes/MaxPriorityQueue.html +0 -830
- package/docs/classes/MinHeap.html +0 -431
- package/docs/classes/MinPriorityQueue.html +0 -832
- package/docs/classes/Navigator.html +0 -307
- package/docs/classes/ObjectDeque.html +0 -449
- package/docs/classes/Pair.html +0 -166
- package/docs/classes/PriorityQueue.html +0 -754
- package/docs/classes/Queue.html +0 -386
- package/docs/classes/SegmentTree.html +0 -428
- package/docs/classes/SegmentTreeNode.html +0 -351
- package/docs/classes/SinglyLinkedList.html +0 -782
- package/docs/classes/SinglyLinkedListNode.html +0 -264
- package/docs/classes/SkipLinkedList.html +0 -166
- package/docs/classes/SplayTree.html +0 -166
- package/docs/classes/Stack.html +0 -362
- package/docs/classes/TreeMap.html +0 -166
- package/docs/classes/TreeMultiSet.html +0 -2196
- package/docs/classes/TreeMultiSetNode.html +0 -450
- package/docs/classes/TreeNode.html +0 -337
- package/docs/classes/TreeSet.html +0 -166
- package/docs/classes/Trie.html +0 -366
- package/docs/classes/TrieNode.html +0 -274
- package/docs/classes/TwoThreeTree.html +0 -166
- package/docs/classes/UndirectedEdge.html +0 -331
- package/docs/classes/UndirectedGraph.html +0 -1196
- package/docs/classes/UndirectedVertex.html +0 -248
- package/docs/classes/Vector2D.html +0 -799
- package/docs/enums/CP.html +0 -175
- package/docs/enums/FamilyPosition.html +0 -175
- package/docs/enums/LoopType.html +0 -176
- package/docs/enums/RBColor.html +0 -168
- package/docs/enums/TopologicalProperty.html +0 -175
- package/docs/index.html +0 -639
- package/docs/interfaces/IBinaryTree.html +0 -189
- package/docs/interfaces/IBinaryTreeNode.html +0 -396
- package/docs/interfaces/IDirectedGraph.html +0 -259
- package/docs/interfaces/IGraph.html +0 -471
- package/docs/interfaces/IUNDirectedGraph.html +0 -151
- package/docs/modules.html +0 -250
- package/docs/types/AVLTreeOptions.html +0 -144
- package/docs/types/AbstractBinaryTreeOptions.html +0 -150
- package/docs/types/AbstractRecursiveBinaryTreeNode.html +0 -146
- package/docs/types/AbstractResultByProperty.html +0 -146
- package/docs/types/AbstractResultsByProperty.html +0 -146
- package/docs/types/BSTComparator.html +0 -156
- package/docs/types/BSTOptions.html +0 -146
- package/docs/types/BinaryTreeDeletedResult.html +0 -153
- package/docs/types/BinaryTreeNodeId.html +0 -141
- package/docs/types/BinaryTreeNodePropertyName.html +0 -141
- package/docs/types/BinaryTreeOptions.html +0 -144
- package/docs/types/DFSOrderPattern.html +0 -141
- package/docs/types/DijkstraResult.html +0 -161
- package/docs/types/Direction.html +0 -141
- package/docs/types/EdgeId.html +0 -141
- package/docs/types/HeapOptions.html +0 -162
- package/docs/types/IdObject.html +0 -151
- package/docs/types/KeyValObject.html +0 -146
- package/docs/types/NavigatorParams.html +0 -175
- package/docs/types/NodeOrPropertyName.html +0 -141
- package/docs/types/PriorityQueueComparator.html +0 -161
- package/docs/types/PriorityQueueDFSOrderPattern.html +0 -141
- package/docs/types/PriorityQueueOptions.html +0 -155
- package/docs/types/RBTreeOptions.html +0 -144
- package/docs/types/RecursiveAVLTreeNode.html +0 -146
- package/docs/types/RecursiveBSTNode.html +0 -146
- package/docs/types/RecursiveBinaryTreeNode.html +0 -146
- package/docs/types/RecursiveTreeMultiSetNode.html +0 -146
- package/docs/types/SegmentTreeNodeVal.html +0 -141
- package/docs/types/TopologicalStatus.html +0 -141
- package/docs/types/TreeMultiSetOptions.html +0 -146
- package/docs/types/Turning.html +0 -141
- package/docs/types/VertexId.html +0 -141
- package/notes/bst.test.ts +0 -181
- package/notes/note.md +0 -34
|
@@ -5,17 +5,26 @@
|
|
|
5
5
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
6
|
* @license MIT License
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
8
|
+
import type { AbstractBinaryTreeNodeNested, AbstractBinaryTreeNodeProperties, BinaryTreeDeletedResult, BinaryTreeNodeId, BinaryTreeNodePropertyName, DFSOrderPattern, NodeOrPropertyName } from '../types';
|
|
9
9
|
import { AbstractBinaryTreeOptions, FamilyPosition, LoopType } from '../types';
|
|
10
|
-
import {
|
|
11
|
-
export declare abstract class AbstractBinaryTreeNode<T, FAMILY extends AbstractBinaryTreeNode<T, FAMILY> =
|
|
12
|
-
|
|
10
|
+
import { IAbstractBinaryTree, IAbstractBinaryTreeNode } from '../interfaces';
|
|
11
|
+
export declare abstract class AbstractBinaryTreeNode<T = any, FAMILY extends AbstractBinaryTreeNode<T, FAMILY> = AbstractBinaryTreeNodeNested<T>> implements IAbstractBinaryTreeNode<T, FAMILY> {
|
|
12
|
+
/**
|
|
13
|
+
* The constructor function initializes a BinaryTreeNode object with an id, value, and count.
|
|
14
|
+
* @param {BinaryTreeNodeId} id - The `id` parameter is of type `BinaryTreeNodeId` and represents the unique identifier
|
|
15
|
+
* for the binary tree node.
|
|
16
|
+
* @param {T} [val] - The `val` parameter is an optional parameter of type `T`. It represents the value of the binary
|
|
17
|
+
* tree node. If no value is provided, it will be `undefined`.
|
|
18
|
+
* @param {number} [count] - The `count` parameter is an optional parameter that represents the number of times the
|
|
19
|
+
* value `val` appears in the binary tree node. If the `count` parameter is not provided, it defaults to 1.
|
|
20
|
+
*/
|
|
21
|
+
constructor(id: BinaryTreeNodeId, val?: T, count?: number);
|
|
13
22
|
private _id;
|
|
14
23
|
get id(): BinaryTreeNodeId;
|
|
15
24
|
set id(v: BinaryTreeNodeId);
|
|
16
25
|
private _val;
|
|
17
|
-
get val(): T;
|
|
18
|
-
set val(
|
|
26
|
+
get val(): T | undefined;
|
|
27
|
+
set val(value: T | undefined);
|
|
19
28
|
private _left?;
|
|
20
29
|
get left(): FAMILY | null | undefined;
|
|
21
30
|
set left(v: FAMILY | null | undefined);
|
|
@@ -25,20 +34,28 @@ export declare abstract class AbstractBinaryTreeNode<T, FAMILY extends AbstractB
|
|
|
25
34
|
private _parent;
|
|
26
35
|
get parent(): FAMILY | null | undefined;
|
|
27
36
|
set parent(v: FAMILY | null | undefined);
|
|
28
|
-
private _familyPosition;
|
|
29
|
-
get familyPosition(): FamilyPosition;
|
|
30
|
-
set familyPosition(v: FamilyPosition);
|
|
31
37
|
private _count;
|
|
32
38
|
get count(): number;
|
|
33
39
|
set count(v: number);
|
|
34
40
|
private _height;
|
|
35
41
|
get height(): number;
|
|
36
42
|
set height(v: number);
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
get familyPosition(): FamilyPosition;
|
|
44
|
+
abstract createNode(id: BinaryTreeNodeId, val?: T, count?: number): FAMILY;
|
|
45
|
+
/**
|
|
46
|
+
* The function swaps the location of two nodes in a binary tree.
|
|
47
|
+
* @param {FAMILY} destNode - The `swapNode` parameter is of type `FAMILY`, which represents a node in a family tree.
|
|
48
|
+
* @returns the `swapNode` object after swapping its properties with the properties of `this` object.
|
|
49
|
+
*/
|
|
50
|
+
swapLocation(destNode: FAMILY): FAMILY;
|
|
51
|
+
/**
|
|
52
|
+
* The `clone` function returns a new instance of the `FAMILY` class with the same `id`, `val`, and `count` properties.
|
|
53
|
+
* @returns The `clone()` method is returning a new instance of the `FAMILY` class with the same `id`, `val`, and
|
|
54
|
+
* `count` values as the current instance.
|
|
55
|
+
*/
|
|
39
56
|
clone(): FAMILY | null;
|
|
40
57
|
}
|
|
41
|
-
export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNode<N['val'], N> = AbstractBinaryTreeNode
|
|
58
|
+
export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNode<N['val'], N> = AbstractBinaryTreeNode> implements IAbstractBinaryTree<N> {
|
|
42
59
|
/**
|
|
43
60
|
* The protected constructor initializes the options for an abstract binary tree.
|
|
44
61
|
* @param {AbstractBinaryTreeOptions} [options] - An optional object that contains configuration options for the binary
|
|
@@ -61,15 +78,15 @@ export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNod
|
|
|
61
78
|
get autoIncrementId(): boolean;
|
|
62
79
|
private _maxId;
|
|
63
80
|
get maxId(): number;
|
|
64
|
-
private
|
|
65
|
-
get
|
|
81
|
+
private _isMergeDuplicatedVal;
|
|
82
|
+
get isMergeDuplicatedVal(): boolean;
|
|
66
83
|
private _root;
|
|
67
84
|
get root(): N | null;
|
|
68
85
|
private _size;
|
|
69
86
|
get size(): number;
|
|
70
87
|
private _count;
|
|
71
88
|
get count(): number;
|
|
72
|
-
abstract
|
|
89
|
+
abstract createNode(id: BinaryTreeNodeId, val?: N['val'], count?: number): N | null;
|
|
73
90
|
/**
|
|
74
91
|
* The clear function resets the state of an object by setting its properties to their initial values.
|
|
75
92
|
*/
|
|
@@ -92,12 +109,13 @@ export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNod
|
|
|
92
109
|
*/
|
|
93
110
|
add(id: BinaryTreeNodeId, val?: N['val'], count?: number): N | null | undefined;
|
|
94
111
|
/**
|
|
95
|
-
* The function
|
|
96
|
-
* @param {N | null} newNode - The `newNode` parameter
|
|
97
|
-
*
|
|
98
|
-
* @param parent - The `parent` parameter
|
|
99
|
-
*
|
|
100
|
-
* @returns
|
|
112
|
+
* The function adds a new node to a binary tree as the left or right child of a given parent node.
|
|
113
|
+
* @param {N | null} newNode - The `newNode` parameter represents the node that you want to add to the tree. It can be
|
|
114
|
+
* either a node object (`N`) or `null`.
|
|
115
|
+
* @param {N} parent - The `parent` parameter represents the parent node to which the new node will be added as a
|
|
116
|
+
* child.
|
|
117
|
+
* @returns either the left or right child node that was added to the parent node. It can also return `null` or
|
|
118
|
+
* `undefined` in certain cases.
|
|
101
119
|
*/
|
|
102
120
|
addTo(newNode: N | null, parent: N): N | null | undefined;
|
|
103
121
|
/**
|
|
@@ -117,24 +135,21 @@ export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNod
|
|
|
117
135
|
*/
|
|
118
136
|
fill(data: N[] | Array<N['val']>): boolean;
|
|
119
137
|
/**
|
|
120
|
-
* The function removes a node from a binary tree and returns
|
|
121
|
-
*
|
|
122
|
-
*
|
|
138
|
+
* The `remove` function removes a node from a binary search tree and returns the deleted node along with the parent
|
|
139
|
+
* node that needs to be balanced.
|
|
140
|
+
* @param {N | BinaryTreeNodeId | null} nodeOrId - The `nodeOrId` parameter can be one of the following:
|
|
123
141
|
* @param {boolean} [ignoreCount] - The `ignoreCount` parameter is an optional boolean parameter that determines
|
|
124
142
|
* whether to ignore the count of the node being removed. If `ignoreCount` is set to `true`, the count of the node will
|
|
125
|
-
* not be
|
|
126
|
-
* @returns
|
|
127
|
-
* "needBalanced". The "deleted" property contains the deleted node or undefined if no node was deleted. The
|
|
128
|
-
* "needBalanced" property is always null.
|
|
143
|
+
* not be taken into account when removing it. If `ignoreCount` is set to `false
|
|
144
|
+
* @returns The function `remove` returns an array of `BinaryTreeDeletedResult<N>` objects.
|
|
129
145
|
*/
|
|
130
|
-
remove(
|
|
146
|
+
remove(nodeOrId: N | BinaryTreeNodeId, ignoreCount?: boolean): BinaryTreeDeletedResult<N>[];
|
|
131
147
|
/**
|
|
132
|
-
* The function calculates the depth of a
|
|
133
|
-
* @param
|
|
134
|
-
*
|
|
135
|
-
* @returns The depth of the given binary tree node.
|
|
148
|
+
* The function calculates the depth of a node in a binary tree.
|
|
149
|
+
* @param {N | BinaryTreeNodeId | null} beginRoot - The `beginRoot` parameter can be one of the following:
|
|
150
|
+
* @returns the depth of the given node or binary tree.
|
|
136
151
|
*/
|
|
137
|
-
getDepth(
|
|
152
|
+
getDepth(beginRoot: N | BinaryTreeNodeId | null): number;
|
|
138
153
|
/**
|
|
139
154
|
* The `getHeight` function calculates the maximum height of a binary tree using either a recursive or iterative
|
|
140
155
|
* approach.
|
|
@@ -143,7 +158,7 @@ export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNod
|
|
|
143
158
|
* If no value is provided for `beginRoot`, the function will use the `root` property of the class instance as
|
|
144
159
|
* @returns the height of the binary tree.
|
|
145
160
|
*/
|
|
146
|
-
getHeight(beginRoot?: N | null): number;
|
|
161
|
+
getHeight(beginRoot?: N | BinaryTreeNodeId | null): number;
|
|
147
162
|
/**
|
|
148
163
|
* The `getMinHeight` function calculates the minimum height of a binary tree using either a recursive or iterative
|
|
149
164
|
* approach.
|
|
@@ -172,7 +187,7 @@ export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNod
|
|
|
172
187
|
* function will stop traversing the tree and return the first matching node. If `
|
|
173
188
|
* @returns The function `getNodes` returns an array of `N | null | undefined` objects.
|
|
174
189
|
*/
|
|
175
|
-
getNodes(nodeProperty: BinaryTreeNodeId | N, propertyName?: BinaryTreeNodePropertyName, onlyOne?: boolean):
|
|
190
|
+
getNodes(nodeProperty: BinaryTreeNodeId | N, propertyName?: BinaryTreeNodePropertyName, onlyOne?: boolean): N[];
|
|
176
191
|
/**
|
|
177
192
|
* The function checks if a binary tree node has a specific property or if any node in the tree has a specific
|
|
178
193
|
* property.
|
|
@@ -206,12 +221,16 @@ export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNod
|
|
|
206
221
|
getRightMost(): N | null;
|
|
207
222
|
getRightMost(node: N): N;
|
|
208
223
|
/**
|
|
209
|
-
* The `
|
|
210
|
-
* @param {N | null}
|
|
211
|
-
*
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
224
|
+
* The function `isBSTByRooted` checks if a binary tree is a binary search tree (BST) by rooted traversal.
|
|
225
|
+
* @param {N | null} node - The `node` parameter represents the root node of a binary search tree (BST).
|
|
226
|
+
* @returns a boolean value.
|
|
227
|
+
*/
|
|
228
|
+
isBSTByRooted(node: N | null): boolean;
|
|
229
|
+
/**
|
|
230
|
+
* The function checks if a binary tree is a binary search tree.
|
|
231
|
+
* @param {N | null} [node] - The `node` parameter is of type `N` or `null`. It represents the root node of a binary
|
|
232
|
+
* search tree (BST).
|
|
233
|
+
* @returns a boolean value.
|
|
215
234
|
*/
|
|
216
235
|
isBST(node?: N | null): boolean;
|
|
217
236
|
/**
|
|
@@ -233,17 +252,19 @@ export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNod
|
|
|
233
252
|
* provided, it defaults to `'val'`.
|
|
234
253
|
* @returns a number, which is the sum of the values of the nodes in the subtree rooted at `subTreeRoot`.
|
|
235
254
|
*/
|
|
236
|
-
subTreeSum(subTreeRoot: N, propertyName?: BinaryTreeNodePropertyName): number;
|
|
255
|
+
subTreeSum(subTreeRoot: N | BinaryTreeNodeId | null, propertyName?: BinaryTreeNodePropertyName): number;
|
|
237
256
|
/**
|
|
238
|
-
* The function `subTreeAdd` adds a
|
|
239
|
-
* @param subTreeRoot - The `subTreeRoot` parameter
|
|
257
|
+
* The function `subTreeAdd` adds a delta value to a specified property of each node in a subtree.
|
|
258
|
+
* @param {N | BinaryTreeNodeId | null} subTreeRoot - The `subTreeRoot` parameter represents the root node of a binary
|
|
259
|
+
* tree or the ID of a binary tree node. It can also be `null` if there is no subtree root.
|
|
240
260
|
* @param {number} delta - The `delta` parameter is a number that represents the amount by which the property value of
|
|
241
|
-
* each node in the subtree should be
|
|
261
|
+
* each node in the subtree should be incremented or decremented.
|
|
242
262
|
* @param {BinaryTreeNodePropertyName} [propertyName] - The `propertyName` parameter is an optional parameter that
|
|
243
|
-
* specifies the property of the
|
|
244
|
-
*
|
|
263
|
+
* specifies the property of the binary tree node that should be modified. It can be either 'id' or 'count'. If no
|
|
264
|
+
* value is provided for `propertyName`, it defaults to 'id'.
|
|
265
|
+
* @returns a boolean value.
|
|
245
266
|
*/
|
|
246
|
-
subTreeAdd(subTreeRoot: N, delta: number, propertyName?: BinaryTreeNodePropertyName): boolean;
|
|
267
|
+
subTreeAdd(subTreeRoot: N | BinaryTreeNodeId | null, delta: number, propertyName?: BinaryTreeNodePropertyName): boolean;
|
|
247
268
|
BFS(): BinaryTreeNodeId[];
|
|
248
269
|
BFS(nodeOrPropertyName: 'id'): BinaryTreeNodeId[];
|
|
249
270
|
BFS(nodeOrPropertyName: 'val'): N['val'][];
|
|
@@ -327,7 +348,7 @@ export declare abstract class AbstractBinaryTree<N extends AbstractBinaryTreeNod
|
|
|
327
348
|
* to 'id'.
|
|
328
349
|
* @param {NodeOrPropertyName} [nodeOrPropertyName] - The parameter `nodeOrPropertyName` is an optional parameter that
|
|
329
350
|
* can accept a value of type `NodeOrPropertyName`.
|
|
330
|
-
* @returns The method returns an object of type `
|
|
351
|
+
* @returns The method returns an object of type `AbstractBinaryTreeNodeProperties<T>`.
|
|
331
352
|
*/
|
|
332
|
-
protected _getResultByPropertyName(nodeOrPropertyName?: NodeOrPropertyName):
|
|
353
|
+
protected _getResultByPropertyName(nodeOrPropertyName?: NodeOrPropertyName): AbstractBinaryTreeNodeProperties<N>;
|
|
333
354
|
}
|