data-structure-typed 1.32.1 → 1.32.9
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/.idea/data-structure-typed.iml +19 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/vcs.xml +6 -0
- package/CHANGELOG.md +1 -1
- package/README.md +415 -255
- package/coverage/coverage-final.json +4 -4
- package/docs/index.html +268 -21
- package/package.json +48 -16
- package/test/unit/data-structures/binary-tree/tree-multiset.test.ts +46 -1
- package/.auto-changelog-template.hbs +0 -36
- package/coverage/clover.xml +0 -3393
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -386
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov-report/src/data-structures/binary-tree/aa-tree.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/binary-tree/abstract-binary-tree.ts.html +0 -4978
- package/coverage/lcov-report/src/data-structures/binary-tree/avl-tree.ts.html +0 -1015
- package/coverage/lcov-report/src/data-structures/binary-tree/b-tree.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/binary-tree/binary-indexed-tree.ts.html +0 -313
- package/coverage/lcov-report/src/data-structures/binary-tree/binary-tree.ts.html +0 -226
- package/coverage/lcov-report/src/data-structures/binary-tree/bst.ts.html +0 -1696
- package/coverage/lcov-report/src/data-structures/binary-tree/index.html +0 -296
- package/coverage/lcov-report/src/data-structures/binary-tree/index.ts.html +0 -121
- package/coverage/lcov-report/src/data-structures/binary-tree/rb-tree.ts.html +0 -388
- package/coverage/lcov-report/src/data-structures/binary-tree/segment-tree.ts.html +0 -811
- package/coverage/lcov-report/src/data-structures/binary-tree/splay-tree.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/binary-tree/tree-multiset.ts.html +0 -2185
- package/coverage/lcov-report/src/data-structures/binary-tree/two-three-tree.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/graph/abstract-graph.ts.html +0 -3205
- package/coverage/lcov-report/src/data-structures/graph/directed-graph.ts.html +0 -1495
- package/coverage/lcov-report/src/data-structures/graph/index.html +0 -176
- package/coverage/lcov-report/src/data-structures/graph/index.ts.html +0 -97
- package/coverage/lcov-report/src/data-structures/graph/map-graph.ts.html +0 -472
- package/coverage/lcov-report/src/data-structures/graph/undirected-graph.ts.html +0 -907
- package/coverage/lcov-report/src/data-structures/hash/coordinate-map.ts.html +0 -286
- package/coverage/lcov-report/src/data-structures/hash/coordinate-set.ts.html +0 -253
- package/coverage/lcov-report/src/data-structures/hash/hash-table.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/hash/index.html +0 -206
- package/coverage/lcov-report/src/data-structures/hash/index.ts.html +0 -103
- package/coverage/lcov-report/src/data-structures/hash/pair.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/hash/tree-map.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/hash/tree-set.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/heap/heap.ts.html +0 -721
- package/coverage/lcov-report/src/data-structures/heap/index.html +0 -161
- package/coverage/lcov-report/src/data-structures/heap/index.ts.html +0 -94
- package/coverage/lcov-report/src/data-structures/heap/max-heap.ts.html +0 -178
- package/coverage/lcov-report/src/data-structures/heap/min-heap.ts.html +0 -181
- package/coverage/lcov-report/src/data-structures/index.html +0 -116
- package/coverage/lcov-report/src/data-structures/index.ts.html +0 -118
- package/coverage/lcov-report/src/data-structures/linked-list/doubly-linked-list.ts.html +0 -1804
- package/coverage/lcov-report/src/data-structures/linked-list/index.html +0 -161
- package/coverage/lcov-report/src/data-structures/linked-list/index.ts.html +0 -94
- package/coverage/lcov-report/src/data-structures/linked-list/singly-linked-list.ts.html +0 -1588
- package/coverage/lcov-report/src/data-structures/linked-list/skip-linked-list.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/matrix/index.html +0 -176
- package/coverage/lcov-report/src/data-structures/matrix/index.ts.html +0 -97
- package/coverage/lcov-report/src/data-structures/matrix/matrix.ts.html +0 -166
- package/coverage/lcov-report/src/data-structures/matrix/matrix2d.ts.html +0 -721
- package/coverage/lcov-report/src/data-structures/matrix/navigator.ts.html +0 -448
- package/coverage/lcov-report/src/data-structures/matrix/vector2d.ts.html +0 -1033
- package/coverage/lcov-report/src/data-structures/priority-queue/index.html +0 -161
- package/coverage/lcov-report/src/data-structures/priority-queue/index.ts.html +0 -94
- package/coverage/lcov-report/src/data-structures/priority-queue/max-priority-queue.ts.html +0 -253
- package/coverage/lcov-report/src/data-structures/priority-queue/min-priority-queue.ts.html +0 -256
- package/coverage/lcov-report/src/data-structures/priority-queue/priority-queue.ts.html +0 -1162
- package/coverage/lcov-report/src/data-structures/queue/deque.ts.html +0 -976
- package/coverage/lcov-report/src/data-structures/queue/index.html +0 -146
- package/coverage/lcov-report/src/data-structures/queue/index.ts.html +0 -91
- package/coverage/lcov-report/src/data-structures/queue/queue.ts.html +0 -658
- package/coverage/lcov-report/src/data-structures/stack/index.html +0 -131
- package/coverage/lcov-report/src/data-structures/stack/index.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/stack/stack.ts.html +0 -379
- package/coverage/lcov-report/src/data-structures/tree/index.html +0 -131
- package/coverage/lcov-report/src/data-structures/tree/index.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/tree/tree.ts.html +0 -292
- package/coverage/lcov-report/src/data-structures/trie/index.html +0 -131
- package/coverage/lcov-report/src/data-structures/trie/index.ts.html +0 -88
- package/coverage/lcov-report/src/data-structures/trie/trie.ts.html +0 -760
- package/coverage/lcov-report/src/index.html +0 -116
- package/coverage/lcov-report/src/index.ts.html +0 -97
- package/coverage/lcov-report/src/interfaces/index.html +0 -116
- package/coverage/lcov-report/src/interfaces/index.ts.html +0 -130
- package/coverage/lcov-report/src/types/data-structures/abstract-binary-tree.ts.html +0 -235
- package/coverage/lcov-report/src/types/data-structures/bst.ts.html +0 -124
- package/coverage/lcov-report/src/types/data-structures/directed-graph.ts.html +0 -109
- package/coverage/lcov-report/src/types/data-structures/index.html +0 -176
- package/coverage/lcov-report/src/types/data-structures/index.ts.html +0 -130
- package/coverage/lcov-report/src/types/data-structures/rb-tree.ts.html +0 -106
- package/coverage/lcov-report/src/types/index.html +0 -116
- package/coverage/lcov-report/src/types/index.ts.html +0 -94
- package/coverage/lcov-report/src/types/utils/index.html +0 -116
- package/coverage/lcov-report/src/types/utils/index.ts.html +0 -91
- package/coverage/lcov-report/src/utils/index.html +0 -131
- package/coverage/lcov-report/src/utils/index.ts.html +0 -88
- package/coverage/lcov-report/src/utils/utils.ts.html +0 -322
- package/coverage/lcov-report/test/utils/index.html +0 -146
- package/coverage/lcov-report/test/utils/index.ts.html +0 -91
- package/coverage/lcov-report/test/utils/magnitude.ts.html +0 -148
- package/coverage/lcov-report/test/utils/number.ts.html +0 -94
- package/coverage/lcov.info +0 -6676
- package/docs/assets/highlight.css +0 -127
- 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 -2182
- package/docs/classes/AVLTreeNode.html +0 -399
- package/docs/classes/AaTree.html +0 -202
- package/docs/classes/AbstractBinaryTree.html +0 -1836
- package/docs/classes/AbstractBinaryTreeNode.html +0 -441
- package/docs/classes/AbstractEdge.html +0 -345
- package/docs/classes/AbstractGraph.html +0 -1105
- package/docs/classes/AbstractVertex.html +0 -299
- package/docs/classes/ArrayDeque.html +0 -469
- package/docs/classes/BST.html +0 -2026
- package/docs/classes/BSTNode.html +0 -400
- package/docs/classes/BTree.html +0 -202
- package/docs/classes/BinaryIndexedTree.html +0 -371
- package/docs/classes/BinaryTree.html +0 -1867
- package/docs/classes/BinaryTreeNode.html +0 -399
- package/docs/classes/Character.html +0 -250
- package/docs/classes/CoordinateMap.html +0 -513
- package/docs/classes/CoordinateSet.html +0 -474
- package/docs/classes/Deque.html +0 -1005
- package/docs/classes/DirectedEdge.html +0 -404
- package/docs/classes/DirectedGraph.html +0 -1530
- package/docs/classes/DirectedVertex.html +0 -286
- package/docs/classes/DoublyLinkedList.html +0 -998
- package/docs/classes/DoublyLinkedListNode.html +0 -327
- package/docs/classes/HashTable.html +0 -202
- package/docs/classes/Heap.html +0 -647
- package/docs/classes/HeapItem.html +0 -296
- package/docs/classes/LinkedListQueue.html +0 -884
- package/docs/classes/MapEdge.html +0 -391
- package/docs/classes/MapGraph.html +0 -1583
- package/docs/classes/MapVertex.html +0 -356
- package/docs/classes/Matrix2D.html +0 -532
- package/docs/classes/MatrixNTI2D.html +0 -270
- package/docs/classes/MaxHeap.html +0 -671
- package/docs/classes/MaxPriorityQueue.html +0 -866
- package/docs/classes/MinHeap.html +0 -672
- package/docs/classes/MinPriorityQueue.html +0 -868
- package/docs/classes/Navigator.html +0 -343
- package/docs/classes/ObjectDeque.html +0 -527
- package/docs/classes/Pair.html +0 -202
- package/docs/classes/PriorityQueue.html +0 -790
- package/docs/classes/Queue.html +0 -521
- package/docs/classes/RBTree.html +0 -2024
- package/docs/classes/RBTreeNode.html +0 -431
- package/docs/classes/SegmentTree.html +0 -464
- package/docs/classes/SegmentTreeNode.html +0 -387
- package/docs/classes/SinglyLinkedList.html +0 -830
- package/docs/classes/SinglyLinkedListNode.html +0 -300
- package/docs/classes/SkipLinkedList.html +0 -202
- package/docs/classes/SplayTree.html +0 -202
- package/docs/classes/Stack.html +0 -398
- package/docs/classes/TreeMap.html +0 -202
- package/docs/classes/TreeMultiset.html +0 -2510
- package/docs/classes/TreeMultisetNode.html +0 -447
- package/docs/classes/TreeNode.html +0 -344
- package/docs/classes/TreeSet.html +0 -202
- package/docs/classes/Trie.html +0 -402
- package/docs/classes/TrieNode.html +0 -310
- package/docs/classes/TwoThreeTree.html +0 -202
- package/docs/classes/UndirectedEdge.html +0 -374
- package/docs/classes/UndirectedGraph.html +0 -1285
- package/docs/classes/UndirectedVertex.html +0 -284
- package/docs/classes/Vector2D.html +0 -835
- package/docs/enums/CP.html +0 -211
- package/docs/enums/FamilyPosition.html +0 -239
- package/docs/enums/LoopType.html +0 -212
- package/docs/enums/RBColor.html +0 -204
- package/docs/enums/TopologicalProperty.html +0 -211
- package/docs/functions/arrayRemove.html +0 -208
- package/docs/functions/isThunk.html +0 -186
- package/docs/functions/toThunk.html +0 -186
- package/docs/functions/trampoline.html +0 -186
- package/docs/functions/trampolineAsync.html +0 -186
- package/docs/functions/uuidV4.html +0 -181
- package/docs/interfaces/IAVLTree.html +0 -1245
- package/docs/interfaces/IAbstractBinaryTree.html +0 -1101
- package/docs/interfaces/IAbstractBinaryTreeNode.html +0 -335
- package/docs/interfaces/IAbstractGraph.html +0 -433
- package/docs/interfaces/IBST.html +0 -1245
- package/docs/interfaces/IDirectedGraph.html +0 -570
- package/docs/interfaces/IRBTree.html +0 -1247
- package/docs/interfaces/IUNDirectedGraph.html +0 -463
- package/docs/types/AVLTreeNodeNested.html +0 -182
- package/docs/types/AVLTreeOptions.html +0 -180
- package/docs/types/AbstractBinaryTreeNodeNested.html +0 -182
- package/docs/types/AbstractBinaryTreeNodeProperties.html +0 -182
- package/docs/types/AbstractBinaryTreeNodeProperty.html +0 -182
- package/docs/types/AbstractBinaryTreeOptions.html +0 -182
- package/docs/types/BSTComparator.html +0 -192
- package/docs/types/BSTNodeNested.html +0 -182
- package/docs/types/BSTOptions.html +0 -182
- package/docs/types/BinaryTreeDeletedResult.html +0 -189
- package/docs/types/BinaryTreeNodeId.html +0 -177
- package/docs/types/BinaryTreeNodeNested.html +0 -182
- package/docs/types/BinaryTreeNodePropertyName.html +0 -177
- package/docs/types/BinaryTreeOptions.html +0 -180
- package/docs/types/DFSOrderPattern.html +0 -177
- package/docs/types/DijkstraResult.html +0 -199
- package/docs/types/Direction.html +0 -177
- package/docs/types/DummyAny.html +0 -190
- package/docs/types/EdgeId.html +0 -177
- package/docs/types/HeapOptions.html +0 -198
- package/docs/types/IAVLTreeNode.html +0 -184
- package/docs/types/IBSTNode.html +0 -184
- package/docs/types/IBinaryTree.html +0 -182
- package/docs/types/IBinaryTreeNode.html +0 -184
- package/docs/types/IRBTreeNode.html +0 -184
- package/docs/types/ITreeMultiset.html +0 -182
- package/docs/types/ITreeMultisetNode.html +0 -184
- package/docs/types/KeyValueObject.html +0 -182
- package/docs/types/KeyValueObjectWithId.html +0 -184
- package/docs/types/MapGraphCoordinate.html +0 -177
- package/docs/types/NavigatorParams.html +0 -211
- package/docs/types/NodeOrPropertyName.html +0 -177
- package/docs/types/NonNumberNonObjectButDefined.html +0 -177
- package/docs/types/ObjectWithNonNumberId.html +0 -184
- package/docs/types/ObjectWithNumberId.html +0 -184
- package/docs/types/ObjectWithoutId.html +0 -177
- package/docs/types/PriorityQueueComparator.html +0 -197
- package/docs/types/PriorityQueueDFSOrderPattern.html +0 -177
- package/docs/types/PriorityQueueOptions.html +0 -191
- package/docs/types/RBTreeNodeNested.html +0 -182
- package/docs/types/RBTreeOptions.html +0 -180
- package/docs/types/RestrictValById.html +0 -177
- package/docs/types/SegmentTreeNodeVal.html +0 -177
- package/docs/types/SpecifyOptional.html +0 -184
- package/docs/types/Thunk.html +0 -185
- package/docs/types/ToThunkFn.html +0 -185
- package/docs/types/TopologicalStatus.html +0 -177
- package/docs/types/TreeMultisetNodeNested.html +0 -182
- package/docs/types/TreeMultisetOptions.html +0 -180
- package/docs/types/TrlAsyncFn.html +0 -190
- package/docs/types/TrlFn.html +0 -190
- package/docs/types/Turning.html +0 -177
- package/docs/types/VertexId.html +0 -177
- package/docs/variables/THUNK_SYMBOL.html +0 -177
- package/rename_clear_files.sh +0 -29
- package/src/data-structures/binary-tree/aa-tree.ts +0 -1
- package/src/data-structures/binary-tree/abstract-binary-tree.ts +0 -1631
- package/src/data-structures/binary-tree/avl-tree.ts +0 -310
- package/src/data-structures/binary-tree/b-tree.ts +0 -1
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +0 -76
- package/src/data-structures/binary-tree/binary-tree.ts +0 -47
- package/src/data-structures/binary-tree/bst.ts +0 -537
- package/src/data-structures/binary-tree/index.ts +0 -12
- package/src/data-structures/binary-tree/rb-tree.ts +0 -101
- package/src/data-structures/binary-tree/segment-tree.ts +0 -242
- package/src/data-structures/binary-tree/splay-tree.ts +0 -1
- package/src/data-structures/binary-tree/tree-multiset.ts +0 -700
- package/src/data-structures/binary-tree/two-three-tree.ts +0 -1
- package/src/data-structures/diagrams/README.md +0 -5
- package/src/data-structures/graph/abstract-graph.ts +0 -1040
- package/src/data-structures/graph/directed-graph.ts +0 -470
- package/src/data-structures/graph/index.ts +0 -4
- package/src/data-structures/graph/map-graph.ts +0 -129
- package/src/data-structures/graph/undirected-graph.ts +0 -274
- package/src/data-structures/hash/coordinate-map.ts +0 -67
- package/src/data-structures/hash/coordinate-set.ts +0 -56
- package/src/data-structures/hash/hash-table.ts +0 -1
- package/src/data-structures/hash/index.ts +0 -6
- package/src/data-structures/hash/pair.ts +0 -1
- package/src/data-structures/hash/tree-map.ts +0 -1
- package/src/data-structures/hash/tree-set.ts +0 -1
- package/src/data-structures/heap/heap.ts +0 -212
- package/src/data-structures/heap/index.ts +0 -3
- package/src/data-structures/heap/max-heap.ts +0 -31
- package/src/data-structures/heap/min-heap.ts +0 -32
- package/src/data-structures/index.ts +0 -11
- package/src/data-structures/linked-list/doubly-linked-list.ts +0 -573
- package/src/data-structures/linked-list/index.ts +0 -3
- package/src/data-structures/linked-list/singly-linked-list.ts +0 -501
- package/src/data-structures/linked-list/skip-linked-list.ts +0 -1
- package/src/data-structures/matrix/index.ts +0 -4
- package/src/data-structures/matrix/matrix.ts +0 -27
- package/src/data-structures/matrix/matrix2d.ts +0 -212
- package/src/data-structures/matrix/navigator.ts +0 -121
- package/src/data-structures/matrix/vector2d.ts +0 -316
- package/src/data-structures/priority-queue/index.ts +0 -3
- package/src/data-structures/priority-queue/max-priority-queue.ts +0 -56
- package/src/data-structures/priority-queue/min-priority-queue.ts +0 -57
- package/src/data-structures/priority-queue/priority-queue.ts +0 -359
- package/src/data-structures/queue/deque.ts +0 -297
- package/src/data-structures/queue/index.ts +0 -2
- package/src/data-structures/queue/queue.ts +0 -191
- package/src/data-structures/stack/index.ts +0 -1
- package/src/data-structures/stack/stack.ts +0 -98
- package/src/data-structures/tree/index.ts +0 -1
- package/src/data-structures/tree/tree.ts +0 -69
- package/src/data-structures/trie/index.ts +0 -1
- package/src/data-structures/trie/trie.ts +0 -225
- package/src/index.ts +0 -4
- package/src/interfaces/abstract-binary-tree.ts +0 -191
- package/src/interfaces/abstract-graph.ts +0 -31
- package/src/interfaces/avl-tree.ts +0 -25
- package/src/interfaces/binary-tree.ts +0 -6
- package/src/interfaces/bst.ts +0 -31
- package/src/interfaces/directed-graph.ts +0 -20
- package/src/interfaces/doubly-linked-list.ts +0 -1
- package/src/interfaces/heap.ts +0 -1
- package/src/interfaces/index.ts +0 -15
- package/src/interfaces/navigator.ts +0 -1
- package/src/interfaces/priority-queue.ts +0 -1
- package/src/interfaces/rb-tree.ts +0 -9
- package/src/interfaces/segment-tree.ts +0 -1
- package/src/interfaces/singly-linked-list.ts +0 -1
- package/src/interfaces/tree-multiset.ts +0 -7
- package/src/interfaces/undirected-graph.ts +0 -6
- package/src/types/data-structures/abstract-binary-tree.ts +0 -50
- package/src/types/data-structures/abstract-graph.ts +0 -11
- package/src/types/data-structures/avl-tree.ts +0 -5
- package/src/types/data-structures/binary-tree.ts +0 -5
- package/src/types/data-structures/bst.ts +0 -13
- package/src/types/data-structures/directed-graph.ts +0 -8
- package/src/types/data-structures/doubly-linked-list.ts +0 -1
- package/src/types/data-structures/heap.ts +0 -5
- package/src/types/data-structures/index.ts +0 -15
- package/src/types/data-structures/map-graph.ts +0 -1
- package/src/types/data-structures/navigator.ts +0 -13
- package/src/types/data-structures/priority-queue.ts +0 -9
- package/src/types/data-structures/rb-tree.ts +0 -8
- package/src/types/data-structures/segment-tree.ts +0 -1
- package/src/types/data-structures/singly-linked-list.ts +0 -1
- package/src/types/data-structures/tree-multiset.ts +0 -6
- package/src/types/helpers.ts +0 -1
- package/src/types/index.ts +0 -3
- package/src/types/utils/index.ts +0 -2
- package/src/types/utils/utils.ts +0 -6
- package/src/types/utils/validate-type.ts +0 -35
- package/src/utils/index.ts +0 -1
- package/src/utils/utils.ts +0 -79
- package/tsconfig.build.json +0 -33
package/docs/index.html
CHANGED
|
@@ -12,23 +12,22 @@
|
|
|
12
12
|
<div class="col-content">
|
|
13
13
|
<div class="tsd-page-title">
|
|
14
14
|
<h2>data-structure-typed</h2></div>
|
|
15
|
-
<div class="tsd-panel tsd-typography"><p><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License">
|
|
15
|
+
<div class="tsd-panel tsd-typography"><a id="md:data-structure-typed" class="tsd-anchor"></a><h1><a href="#md:data-structure-typed">Data Structure Typed</a></h1><p><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License">
|
|
16
16
|
<img src="https://img.shields.io/github/languages/top/zrwusa/data-structure-typed" alt="Language">
|
|
17
17
|
<img src="https://img.shields.io/github/v/release/zrwusa/data-structure-typed" alt="GitHub release (latest by date)">
|
|
18
18
|
<img src="https://img.shields.io/badge/branches-97.54%25-brightgreen.svg?style=flat" alt="Branches">
|
|
19
19
|
<img src="https://aleen42.github.io/badges/src/npm.svg" alt="npm">
|
|
20
20
|
<img src="https://aleen42.github.io/badges/src/eslint.svg" alt="eslint"></p>
|
|
21
|
-
<a id="md:brief" class="tsd-anchor"></a><h2><a href="#md:brief">Brief</a></h2><p>Data Structures of Javascript & TypeScript
|
|
22
|
-
<a id="md:built-in-classic-algorithms" class="tsd-anchor"></a><h2><a href="#md:built-in-classic-algorithms">Built-in classic algorithms</a></h2><p>DFS(Depth-First Search), DFSIterative, BFS(Breadth-First Search),
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<a id="md:install" class="tsd-anchor"></a><h2><a href="#md:install">install</a></h2><a id="md:npm" class="tsd-anchor"></a><h3><a href="#md:npm">npm</a></h3><pre><code class="language-bash"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-2">data-structure-typed</span><span class="hl-1"> </span><span class="hl-3">--save</span>
|
|
21
|
+
<a id="md:brief" class="tsd-anchor"></a><h2><a href="#md:brief">Brief</a></h2><p>Data Structures of Javascript & TypeScript.</p>
|
|
22
|
+
<a id="md:built-in-classic-algorithms" class="tsd-anchor"></a><h2><a href="#md:built-in-classic-algorithms">Built-in classic algorithms</a></h2><p>DFS(Depth-First Search), DFSIterative, BFS(Breadth-First Search), morris, Bellman-Ford Algorithm, Dijkstra's Algorithm,
|
|
23
|
+
Floyd-Warshall Algorithm, Tarjan's Algorithm.</p>
|
|
24
|
+
<a id="md:installation-and-usage" class="tsd-anchor"></a><h2><a href="#md:installation-and-usage">Installation and Usage</a></h2><a id="md:npm" class="tsd-anchor"></a><h3><a href="#md:npm">npm</a></h3><pre><code class="language-bash"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-2">data-structure-typed</span><span class="hl-1"> </span><span class="hl-3">--save</span>
|
|
26
25
|
</code><button>Copy</button></pre>
|
|
27
26
|
<a id="md:yarn" class="tsd-anchor"></a><h3><a href="#md:yarn">yarn</a></h3><pre><code class="language-bash"><span class="hl-0">yarn</span><span class="hl-1"> </span><span class="hl-2">add</span><span class="hl-1"> </span><span class="hl-2">data-structure-typed</span>
|
|
28
27
|
</code><button>Copy</button></pre>
|
|
29
|
-
<a id="md:cdn" class="tsd-anchor"></a><h3><a href="#md:cdn">CDN</a></h3><pre><code class="language-html"><span class="hl-4"><</span><span class="hl-5">script</span><span class="hl-6"> </span><span class="hl-7">src</span><span class="hl-6">=</span><span class="hl-8">"https://cdn.jsdelivr.net/npm/data-structure-typed/umd/bundle.min.js"</span><span class="hl-4">></</span><span class="hl-5">script</span><span class="hl-4">></span>
|
|
28
|
+
<a id="md:cdn" class="tsd-anchor"></a><h3><a href="#md:cdn">CDN</a></h3><pre><code class="language-html"><br/><span class="hl-4"><</span><span class="hl-5">script</span><span class="hl-6"> </span><span class="hl-7">src</span><span class="hl-6">=</span><span class="hl-8">"https://cdn.jsdelivr.net/npm/data-structure-typed/umd/bundle.min.js"</span><span class="hl-4">></</span><span class="hl-5">script</span><span class="hl-4">></span>
|
|
30
29
|
</code><button>Copy</button></pre>
|
|
31
|
-
<pre><code class="language-
|
|
30
|
+
<pre><code class="language-js"><span class="hl-3">const</span><span class="hl-1"> {</span><span class="hl-9">AVLTree</span><span class="hl-1">} = </span><span class="hl-10">dataStructureTyped</span><span class="hl-1">;</span><br/><span class="hl-3">const</span><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-9">Heap</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">MinHeap</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">SinglyLinkedList</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">Stack</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">AVLTreeNode</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">BST</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">Trie</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">DirectedGraph</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">DirectedVertex</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-9">TreeMultiset</span><br/><span class="hl-1">} = </span><span class="hl-10">dataStructureTyped</span><span class="hl-1">;</span>
|
|
32
31
|
</code><button>Copy</button></pre>
|
|
33
32
|
<p><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/examples/videos/webp_output/binary-tree-array-to-binary-tree.webp" alt="">
|
|
34
33
|
<img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/examples/videos/webp_output/binary-tree-dfs-in-order.webp" alt="">
|
|
@@ -40,17 +39,17 @@ Tarjan's Algorithm.</p>
|
|
|
40
39
|
<a id="md:api-docs-amp-examples" class="tsd-anchor"></a><h2><a href="#md:api-docs-amp-examples">API docs & Examples</a></h2><p><a href="https://data-structure-typed-docs.vercel.app">API Docs</a></p>
|
|
41
40
|
<p><a href="https://vivid-algorithm.vercel.app">Live Examples</a></p>
|
|
42
41
|
<p><a href="https://github.com/zrwusa/vivid-algorithm" target="_blank">Examples Repository</a></p>
|
|
43
|
-
<a id="md:code-snippet" class="tsd-anchor"></a><h2><a href="#md:code-snippet">Code Snippet</a></h2><a id="md:binary-search-tree-bst-snippet" class="tsd-anchor"></a><h3><a href="#md:binary-search-tree-bst-snippet">Binary Search Tree (BST) snippet</a></h3><a id="md:ts" class="tsd-anchor"></a><h4><a href="#md:ts">TS</a></h4><pre><code class="language-typescript"><span class="hl-1"> </span><span class="hl-11">import</span><span class="hl-1"> {</span><span class="hl-10">BST</span><span class="hl-1">, </span><span class="hl-10">BSTNode</span><span class="hl-1">} </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span><br/><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">bst</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">]);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-10">size</span><span class="hl-1"> === </span><span class="hl-12">16</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">has</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">node6</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// BSTNode</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">2</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">() === </span><span class="hl-12">5</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getDepth</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">3</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getLeftMost</span><span class="hl-1">()?.</span><span class="hl-10">id</span><span class="hl-1"> === </span><span class="hl-12">1</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// null</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">BFS</span><span class="hl-1">()[</span><span class="hl-12">0</span><span class="hl-1">] === </span><span class="hl-12">11</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><br/><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">objBST</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1"><</span><span class="hl-14">BSTNode</span><span class="hl-1"><{ </span><span class="hl-10">id</span><span class="hl-1">: </span><span class="hl-14">number</span><span class="hl-1">, </span><span class="hl-10">keyA</span><span class="hl-1">: </span><span class="hl-14">number</span><span class="hl-1"> }>>();</span><br/><span class="hl-1"> </span><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">});</span><br/><span class="hl-1"> </span><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">});</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([{</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">}]);</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span>
|
|
42
|
+
<a id="md:code-snippet" class="tsd-anchor"></a><h2><a href="#md:code-snippet">Code Snippet</a></h2><a id="md:binary-search-tree-bst-snippet" class="tsd-anchor"></a><h3><a href="#md:binary-search-tree-bst-snippet">Binary Search Tree (BST) snippet</a></h3><a id="md:ts" class="tsd-anchor"></a><h4><a href="#md:ts">TS</a></h4><pre><code class="language-ts"><span class="hl-11">import</span><span class="hl-1"> {</span><span class="hl-10">BST</span><span class="hl-1">, </span><span class="hl-10">BSTNode</span><span class="hl-1">} </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">bst</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">]);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-10">size</span><span class="hl-1"> === </span><span class="hl-12">16</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">has</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">node6</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// BSTNode</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">2</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">() === </span><span class="hl-12">5</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getDepth</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">3</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getLeftMost</span><span class="hl-1">()?.</span><span class="hl-10">id</span><span class="hl-1"> === </span><span class="hl-12">1</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// null</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">BFS</span><span class="hl-1">()[</span><span class="hl-12">0</span><span class="hl-1">] === </span><span class="hl-12">11</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">objBST</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1"><</span><span class="hl-14">BSTNode</span><span class="hl-1"><{ </span><span class="hl-10">id</span><span class="hl-1">: </span><span class="hl-14">number</span><span class="hl-1">, </span><span class="hl-10">keyA</span><span class="hl-1">: </span><span class="hl-14">number</span><span class="hl-1"> }>>();</span><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">});</span><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">});</span><br/><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([{</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">}]);</span><br/><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span>
|
|
44
43
|
</code><button>Copy</button></pre>
|
|
45
|
-
<a id="md:js" class="tsd-anchor"></a><h4><a href="#md:js">JS</a></h4><pre><code class="language-javascript"><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> {</span><span class="hl-9">BST</span><span class="hl-1">, </span><span class="hl-9">BSTNode</span><span class="hl-1">} = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">);</span><br/><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">bst</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">]);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-10">size</span><span class="hl-1"> === </span><span class="hl-12">16</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">has</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">node6</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">2</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">() === </span><span class="hl-12">5</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getDepth</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">3</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">leftMost</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getLeftMost</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-10">leftMost</span><span class="hl-1">?.</span><span class="hl-10">id</span><span class="hl-1"> === </span><span class="hl-12">1</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-0">expect</span><span class="hl-1">(</span><span class="hl-10">leftMost</span><span class="hl-1">?.</span><span class="hl-10">id</span><span class="hl-1">).</span><span class="hl-0">toBe</span><span class="hl-1">(</span><span class="hl-12">1</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// null</span><br/><span class="hl-1"> </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true or false</span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">bfsIDs</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">BFS</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-10">bfsIDs</span><span class="hl-1">[</span><span class="hl-12">0</span><span class="hl-1">] === </span><span class="hl-12">11</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-0">expect</span><span class="hl-1">(</span><span class="hl-10">bfsIDs</span><span class="hl-1">[</span><span class="hl-12">0</span><span class="hl-1">]).</span><span class="hl-0">toBe</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">objBST</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">});</span><br/><span class="hl-1"> </span><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">});</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([{</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">}]);</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">avlTree</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">AVLTree</span><span class="hl-1">();</span><br/><span class="hl-1"> </span><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">])</span><br/><span class="hl-1"> </span><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">10</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/>
|
|
44
|
+
<a id="md:js" class="tsd-anchor"></a><h4><a href="#md:js">JS</a></h4><pre><code class="language-js"><span class="hl-3">const</span><span class="hl-1"> {</span><span class="hl-9">BST</span><span class="hl-1">, </span><span class="hl-9">BSTNode</span><span class="hl-1">} = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">bst</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">]);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-10">size</span><span class="hl-1"> === </span><span class="hl-12">16</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">has</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">node6</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">2</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getHeight</span><span class="hl-1">() === </span><span class="hl-12">5</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getDepth</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">) === </span><span class="hl-12">3</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">leftMost</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">getLeftMost</span><span class="hl-1">();</span><br/><span class="hl-10">leftMost</span><span class="hl-1">?.</span><span class="hl-10">id</span><span class="hl-1"> === </span><span class="hl-12">1</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-0">expect</span><span class="hl-1">(</span><span class="hl-10">leftMost</span><span class="hl-1">?.</span><span class="hl-10">id</span><span class="hl-1">).</span><span class="hl-0">toBe</span><span class="hl-1">(</span><span class="hl-12">1</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">);</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">get</span><span class="hl-1">(</span><span class="hl-12">6</span><span class="hl-1">); </span><span class="hl-13">// null</span><br/><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true or false</span><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">bfsIDs</span><span class="hl-1"> = </span><span class="hl-10">bst</span><span class="hl-1">.</span><span class="hl-0">BFS</span><span class="hl-1">();</span><br/><span class="hl-10">bfsIDs</span><span class="hl-1">[</span><span class="hl-12">0</span><span class="hl-1">] === </span><span class="hl-12">11</span><span class="hl-1">; </span><span class="hl-13">// true</span><br/><span class="hl-0">expect</span><span class="hl-1">(</span><span class="hl-10">bfsIDs</span><span class="hl-1">[</span><span class="hl-12">0</span><span class="hl-1">]).</span><span class="hl-0">toBe</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">objBST</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">BST</span><span class="hl-1">();</span><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">11</span><span class="hl-1">});</span><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">add</span><span class="hl-1">(</span><span class="hl-12">3</span><span class="hl-1">, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">3</span><span class="hl-1">});</span><br/><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([{</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">15</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">1</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">8</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">13</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">16</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">2</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">6</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">9</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">12</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">14</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">4</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">7</span><span class="hl-1">},</span><br/><span class="hl-1"> {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">10</span><span class="hl-1">}, {</span><span class="hl-10">id:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">, </span><span class="hl-10">keyA:</span><span class="hl-1"> </span><span class="hl-12">5</span><span class="hl-1">}]);</span><br/><br/><span class="hl-10">objBST</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">11</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">avlTree</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">AVLTree</span><span class="hl-1">();</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">])</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">10</span><span class="hl-1">);</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span>
|
|
46
45
|
</code><button>Copy</button></pre>
|
|
47
|
-
<a id="md:avltree-snippet" class="tsd-anchor"></a><h3><a href="#md:avltree-snippet">AVLTree snippet</a></h3><a id="md:ts-1" class="tsd-anchor"></a><h4><a href="#md:ts-1">TS</a></h4><pre><code class="language-
|
|
46
|
+
<a id="md:avltree-snippet" class="tsd-anchor"></a><h3><a href="#md:avltree-snippet">AVLTree snippet</a></h3><a id="md:ts-1" class="tsd-anchor"></a><h4><a href="#md:ts-1">TS</a></h4><pre><code class="language-ts"><span class="hl-11">import</span><span class="hl-1"> {</span><span class="hl-10">AVLTree</span><span class="hl-1">} </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">avlTree</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">AVLTree</span><span class="hl-1">();</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">])</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">10</span><span class="hl-1">);</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span>
|
|
48
47
|
</code><button>Copy</button></pre>
|
|
49
|
-
<a id="md:js-1" class="tsd-anchor"></a><h4><a href="#md:js-1">JS</a></h4><pre><code class="language-
|
|
48
|
+
<a id="md:js-1" class="tsd-anchor"></a><h4><a href="#md:js-1">JS</a></h4><pre><code class="language-js"><span class="hl-3">const</span><span class="hl-1"> {</span><span class="hl-9">AVLTree</span><span class="hl-1">} = </span><span class="hl-0">require</span><span class="hl-1">(</span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">avlTree</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">AVLTree</span><span class="hl-1">();</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">addMany</span><span class="hl-1">([</span><span class="hl-12">11</span><span class="hl-1">, </span><span class="hl-12">3</span><span class="hl-1">, </span><span class="hl-12">15</span><span class="hl-1">, </span><span class="hl-12">1</span><span class="hl-1">, </span><span class="hl-12">8</span><span class="hl-1">, </span><span class="hl-12">13</span><span class="hl-1">, </span><span class="hl-12">16</span><span class="hl-1">, </span><span class="hl-12">2</span><span class="hl-1">, </span><span class="hl-12">6</span><span class="hl-1">, </span><span class="hl-12">9</span><span class="hl-1">, </span><span class="hl-12">12</span><span class="hl-1">, </span><span class="hl-12">14</span><span class="hl-1">, </span><span class="hl-12">4</span><span class="hl-1">, </span><span class="hl-12">7</span><span class="hl-1">, </span><span class="hl-12">10</span><span class="hl-1">, </span><span class="hl-12">5</span><span class="hl-1">])</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">(</span><span class="hl-12">10</span><span class="hl-1">);</span><br/><span class="hl-10">avlTree</span><span class="hl-1">.</span><span class="hl-0">isAVLBalanced</span><span class="hl-1">(); </span><span class="hl-13">// true</span>
|
|
50
49
|
</code><button>Copy</button></pre>
|
|
51
|
-
<a id="md:directed-graph-simple-snippet" class="tsd-anchor"></a><h3><a href="#md:directed-graph-simple-snippet">Directed Graph simple snippet</a></h3><a id="md:ts-or-js" class="tsd-anchor"></a><h4><a href="#md:ts-or-js">TS or JS</a></h4><pre><code class="language-
|
|
50
|
+
<a id="md:directed-graph-simple-snippet" class="tsd-anchor"></a><h3><a href="#md:directed-graph-simple-snippet">Directed Graph simple snippet</a></h3><a id="md:ts-or-js" class="tsd-anchor"></a><h4><a href="#md:ts-or-js">TS or JS</a></h4><pre><code class="language-ts"><span class="hl-11">import</span><span class="hl-1"> {</span><span class="hl-10">DirectedGraph</span><span class="hl-1">} </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">graph</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">DirectedGraph</span><span class="hl-1">();</span><br/><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">hasVertex</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">hasVertex</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">hasVertex</span><span class="hl-1">(</span><span class="hl-2">'C'</span><span class="hl-1">); </span><span class="hl-13">// false</span><br/><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">hasEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">hasEdge</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">, </span><span class="hl-2">'A'</span><span class="hl-1">); </span><span class="hl-13">// false</span><br/><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">removeEdgeSrcToDest</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">hasEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">); </span><span class="hl-13">// false</span><br/><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'C'</span><span class="hl-1">);</span><br/><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">, </span><span class="hl-2">'C'</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">topologicalOrderIds</span><span class="hl-1"> = </span><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">topologicalSort</span><span class="hl-1">(); </span><span class="hl-13">// ['A', 'B', 'C']</span>
|
|
52
51
|
</code><button>Copy</button></pre>
|
|
53
|
-
<a id="md:undirected-graph-snippet" class="tsd-anchor"></a><h3><a href="#md:undirected-graph-snippet">Undirected Graph snippet</a></h3><a id="md:ts-or-js-1" class="tsd-anchor"></a><h4><a href="#md:ts-or-js-1">TS or JS</a></h4><pre><code class="language-
|
|
52
|
+
<a id="md:undirected-graph-snippet" class="tsd-anchor"></a><h3><a href="#md:undirected-graph-snippet">Undirected Graph snippet</a></h3><a id="md:ts-or-js-1" class="tsd-anchor"></a><h4><a href="#md:ts-or-js-1">TS or JS</a></h4><pre><code class="language-ts"><span class="hl-11">import</span><span class="hl-1"> {</span><span class="hl-10">UndirectedGraph</span><span class="hl-1">} </span><span class="hl-11">from</span><span class="hl-1"> </span><span class="hl-2">'data-structure-typed'</span><span class="hl-1">;</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">graph</span><span class="hl-1"> = </span><span class="hl-3">new</span><span class="hl-1"> </span><span class="hl-0">UndirectedGraph</span><span class="hl-1">();</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'C'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addVertex</span><span class="hl-1">(</span><span class="hl-2">'D'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">removeVertex</span><span class="hl-1">(</span><span class="hl-2">'C'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">, </span><span class="hl-2">'B'</span><span class="hl-1">);</span><br/><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">addEdge</span><span class="hl-1">(</span><span class="hl-2">'B'</span><span class="hl-1">, </span><span class="hl-2">'D'</span><span class="hl-1">);</span><br/><br/><span class="hl-3">const</span><span class="hl-1"> </span><span class="hl-9">dijkstraResult</span><span class="hl-1"> = </span><span class="hl-10">graph</span><span class="hl-1">.</span><span class="hl-0">dijkstra</span><span class="hl-1">(</span><span class="hl-2">'A'</span><span class="hl-1">);</span><br/><span class="hl-10">Array</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><span class="hl-10">dijkstraResult</span><span class="hl-1">?.</span><span class="hl-10">seen</span><span class="hl-1"> ?? []).</span><span class="hl-0">map</span><span class="hl-1">(</span><span class="hl-10">vertex</span><span class="hl-1"> </span><span class="hl-3">=></span><span class="hl-1"> </span><span class="hl-10">vertex</span><span class="hl-1">.</span><span class="hl-10">id</span><span class="hl-1">) </span><span class="hl-13">// ['A', 'B', 'D']</span>
|
|
54
53
|
</code><button>Copy</button></pre>
|
|
55
54
|
<a id="md:data-structures" class="tsd-anchor"></a><h2><a href="#md:data-structures">Data Structures</a></h2><table>
|
|
56
55
|
<thead>
|
|
@@ -175,7 +174,6 @@ Tarjan's Algorithm.</p>
|
|
|
175
174
|
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Stack.html"><span>Stack</span></a></td>
|
|
176
175
|
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
|
|
177
176
|
</tr>
|
|
178
|
-
|
|
179
177
|
<tr>
|
|
180
178
|
<td>Coordinate Set</td>
|
|
181
179
|
<td></td>
|
|
@@ -228,7 +226,9 @@ Tarjan's Algorithm.</p>
|
|
|
228
226
|
</tbody>
|
|
229
227
|
</table>
|
|
230
228
|
|
|
231
|
-
<a id="md:code-design" class="tsd-anchor"></a><h2><a href="#md:code-design">Code design</a></h2><p>By strictly adhering to object-oriented design (BinaryTree -> BST -> AVLTree -> TreeMultiset), you can seamlessly
|
|
229
|
+
<a id="md:code-design" class="tsd-anchor"></a><h2><a href="#md:code-design">Code design</a></h2><p>By strictly adhering to object-oriented design (BinaryTree -> BST -> AVLTree -> TreeMultiset), you can seamlessly
|
|
230
|
+
inherit the existing data structures to implement the customized ones you need. Object-oriented design stands as the
|
|
231
|
+
optimal approach to data structure design.</p>
|
|
232
232
|
<a id="md:complexities" class="tsd-anchor"></a><h2><a href="#md:complexities">Complexities</a></h2><a id="md:performance-of-big-o" class="tsd-anchor"></a><h3><a href="#md:performance-of-big-o">performance of Big O</a></h3><table>
|
|
233
233
|
<thead>
|
|
234
234
|
<tr>
|
|
@@ -484,9 +484,255 @@ Tarjan's Algorithm.</p>
|
|
|
484
484
|
</tbody>
|
|
485
485
|
</table>
|
|
486
486
|
|
|
487
|
-
|
|
488
|
-
<
|
|
489
|
-
|
|
487
|
+
|
|
488
|
+
<table>
|
|
489
|
+
<tr>
|
|
490
|
+
<th>Data Structure</th>
|
|
491
|
+
<th>C++ STL</th>
|
|
492
|
+
<th>java.util</th>
|
|
493
|
+
<th>Python collections</th>
|
|
494
|
+
</tr>
|
|
495
|
+
<tr>
|
|
496
|
+
<td>Dynamic Array (ArrayList)</td>
|
|
497
|
+
<td>std::vector<T></td>
|
|
498
|
+
<td>ArrayList<E></td>
|
|
499
|
+
<td>list</td>
|
|
500
|
+
</tr>
|
|
501
|
+
<tr>
|
|
502
|
+
<td>Linked List</td>
|
|
503
|
+
<td>std::list<T></td>
|
|
504
|
+
<td>LinkedList<E></td>
|
|
505
|
+
<td>deque</td>
|
|
506
|
+
</tr>
|
|
507
|
+
<tr>
|
|
508
|
+
<td>Set</td>
|
|
509
|
+
<td>std::set<T></td>
|
|
510
|
+
<td>HashSet<E></td>
|
|
511
|
+
<td>set</td>
|
|
512
|
+
</tr>
|
|
513
|
+
<tr>
|
|
514
|
+
<td>Map</td>
|
|
515
|
+
<td>std::map<K, V></td>
|
|
516
|
+
<td>HashMap<K, V></td>
|
|
517
|
+
<td>dict</td>
|
|
518
|
+
</tr>
|
|
519
|
+
<tr>
|
|
520
|
+
<td>Stack</td>
|
|
521
|
+
<td>std::stack<T></td>
|
|
522
|
+
<td>Stack<E></td>
|
|
523
|
+
<td>N/A</td>
|
|
524
|
+
</tr>
|
|
525
|
+
<tr>
|
|
526
|
+
<td>Queue</td>
|
|
527
|
+
<td>std::queue<T></td>
|
|
528
|
+
<td>LinkedList<E></td>
|
|
529
|
+
<td>N/A</td>
|
|
530
|
+
</tr>
|
|
531
|
+
<tr>
|
|
532
|
+
<td>Priority Queue</td>
|
|
533
|
+
<td>std::priority_queue<T></td>
|
|
534
|
+
<td>PriorityQueue<E></td>
|
|
535
|
+
<td>N/A</td>
|
|
536
|
+
</tr>
|
|
537
|
+
<tr>
|
|
538
|
+
<td>Hash Table</td>
|
|
539
|
+
<td>N/A</td>
|
|
540
|
+
<td>N/A</td>
|
|
541
|
+
<td>defaultdict, Counter, etc.</td>
|
|
542
|
+
</tr>
|
|
543
|
+
<tr>
|
|
544
|
+
<td>Deque</td>
|
|
545
|
+
<td>std::deque<T></td>
|
|
546
|
+
<td>N/A</td>
|
|
547
|
+
<td>N/A</td>
|
|
548
|
+
</tr>
|
|
549
|
+
<tr>
|
|
550
|
+
<td>Multiset</td>
|
|
551
|
+
<td>std::multiset<T></td>
|
|
552
|
+
<td>N/A</td>
|
|
553
|
+
<td>N/A</td>
|
|
554
|
+
</tr>
|
|
555
|
+
<tr>
|
|
556
|
+
<td>Multimap</td>
|
|
557
|
+
<td>std::multimap<K, V></td>
|
|
558
|
+
<td>N/A</td>
|
|
559
|
+
<td>N/A</td>
|
|
560
|
+
</tr>
|
|
561
|
+
<tr>
|
|
562
|
+
<td>Unordered Set</td>
|
|
563
|
+
<td>std::unordered_set<T></td>
|
|
564
|
+
<td>HashSet<E></td>
|
|
565
|
+
<td>N/A</td>
|
|
566
|
+
</tr>
|
|
567
|
+
<tr>
|
|
568
|
+
<td>Unordered Map</td>
|
|
569
|
+
<td>std::unordered_map<K, V></td>
|
|
570
|
+
<td>HashMap<K, V></td>
|
|
571
|
+
<td>N/A</td>
|
|
572
|
+
</tr>
|
|
573
|
+
<tr>
|
|
574
|
+
<td>Bitset</td>
|
|
575
|
+
<td>std::bitset<N></td>
|
|
576
|
+
<td>N/A</td>
|
|
577
|
+
<td>N/A</td>
|
|
578
|
+
</tr>
|
|
579
|
+
<tr>
|
|
580
|
+
<td>Ordered Dictionary (OrderedDict)</td>
|
|
581
|
+
<td>N/A</td>
|
|
582
|
+
<td>N/A</td>
|
|
583
|
+
<td>OrderedDict</td>
|
|
584
|
+
</tr>
|
|
585
|
+
<tr>
|
|
586
|
+
<td>User-Defined Dictionary</td>
|
|
587
|
+
<td>N/A</td>
|
|
588
|
+
<td>N/A</td>
|
|
589
|
+
<td>UserDict</td>
|
|
590
|
+
</tr>
|
|
591
|
+
<tr>
|
|
592
|
+
<td>User-Defined List</td>
|
|
593
|
+
<td>N/A</td>
|
|
594
|
+
<td>N/A</td>
|
|
595
|
+
<td>UserList</td>
|
|
596
|
+
</tr>
|
|
597
|
+
<tr>
|
|
598
|
+
<td>User-Defined Set</td>
|
|
599
|
+
<td>N/A</td>
|
|
600
|
+
<td>N/A</td>
|
|
601
|
+
<td>UserSet</td>
|
|
602
|
+
</tr>
|
|
603
|
+
<tr>
|
|
604
|
+
<td>Double-Ended Queue (Deque)</td>
|
|
605
|
+
<td>std::deque<T></td>
|
|
606
|
+
<td>N/A</td>
|
|
607
|
+
<td>N/A</td>
|
|
608
|
+
</tr>
|
|
609
|
+
<tr>
|
|
610
|
+
<td>Skip List</td>
|
|
611
|
+
<td>N/A</td>
|
|
612
|
+
<td>N/A</td>
|
|
613
|
+
<td>N/A</td>
|
|
614
|
+
</tr>
|
|
615
|
+
<tr>
|
|
616
|
+
<td>Circular Queue</td>
|
|
617
|
+
<td>N/A</td>
|
|
618
|
+
<td>N/A</td>
|
|
619
|
+
<td>N/A</td>
|
|
620
|
+
</tr>
|
|
621
|
+
<tr>
|
|
622
|
+
<td>Bit Array</td>
|
|
623
|
+
<td>N/A</td>
|
|
624
|
+
<td>N/A</td>
|
|
625
|
+
<td>N/A</td>
|
|
626
|
+
</tr>
|
|
627
|
+
<tr>
|
|
628
|
+
<td>Bloom Filter</td>
|
|
629
|
+
<td>N/A</td>
|
|
630
|
+
<td>N/A</td>
|
|
631
|
+
<td>N/A</td>
|
|
632
|
+
</tr>
|
|
633
|
+
<tr>
|
|
634
|
+
<td>Linked Hash Set</td>
|
|
635
|
+
<td>N/A</td>
|
|
636
|
+
<td>LinkedHashSet<E></td>
|
|
637
|
+
<td>N/A</td>
|
|
638
|
+
</tr>
|
|
639
|
+
<tr>
|
|
640
|
+
<td>Linked Hash Map</td>
|
|
641
|
+
<td>N/A</td>
|
|
642
|
+
<td>LinkedHashMap<K, V></td>
|
|
643
|
+
<td>N/A</td>
|
|
644
|
+
</tr>
|
|
645
|
+
<tr>
|
|
646
|
+
<td>Sorted Set</td>
|
|
647
|
+
<td>N/A</td>
|
|
648
|
+
<td>TreeSet<E></td>
|
|
649
|
+
<td>N/A</td>
|
|
650
|
+
</tr>
|
|
651
|
+
<tr>
|
|
652
|
+
<td>Sorted Map</td>
|
|
653
|
+
<td>N/A</td>
|
|
654
|
+
<td>TreeMap<K, V></td>
|
|
655
|
+
<td>N/A</td>
|
|
656
|
+
</tr>
|
|
657
|
+
<tr>
|
|
658
|
+
<td>Tree Set</td>
|
|
659
|
+
<td>N/A</td>
|
|
660
|
+
<td>N/A</td>
|
|
661
|
+
<td>N/A</td>
|
|
662
|
+
</tr>
|
|
663
|
+
<tr>
|
|
664
|
+
<td>Tree Map</td>
|
|
665
|
+
<td>N/A</td>
|
|
666
|
+
<td>N/A</td>
|
|
667
|
+
<td>N/A</td>
|
|
668
|
+
</tr>
|
|
669
|
+
<tr>
|
|
670
|
+
<td>Persistent Collections</td>
|
|
671
|
+
<td>N/A</td>
|
|
672
|
+
<td>N/A</td>
|
|
673
|
+
<td>N/A</td>
|
|
674
|
+
</tr>
|
|
675
|
+
<tr>
|
|
676
|
+
<td>std::unordered_multiset</td>
|
|
677
|
+
<td>std::unordered_multiset<T></td>
|
|
678
|
+
<td>N/A</td>
|
|
679
|
+
<td>N/A</td>
|
|
680
|
+
</tr>
|
|
681
|
+
<tr>
|
|
682
|
+
<td>std::unordered_multimap</td>
|
|
683
|
+
<td>std::unordered_multimap<K, V></td>
|
|
684
|
+
<td>N/A</td>
|
|
685
|
+
<td>N/A</td>
|
|
686
|
+
</tr>
|
|
687
|
+
<tr>
|
|
688
|
+
<td>N/A</td>
|
|
689
|
+
<td>TreeSet<E></td>
|
|
690
|
+
<td>TreeSet<E></td>
|
|
691
|
+
<td>N/A</td>
|
|
692
|
+
</tr>
|
|
693
|
+
<tr>
|
|
694
|
+
<td>N/A</td>
|
|
695
|
+
<td>TreeMap<K, V></td>
|
|
696
|
+
<td>TreeMap<K, V></td>
|
|
697
|
+
<td>N/A</td>
|
|
698
|
+
</tr>
|
|
699
|
+
<tr>
|
|
700
|
+
<td>N/A</td>
|
|
701
|
+
<td>LinkedBlockingQueue<E></td>
|
|
702
|
+
<td>N/A</td>
|
|
703
|
+
<td>N/A</td>
|
|
704
|
+
</tr>
|
|
705
|
+
<tr>
|
|
706
|
+
<td>N/A</td>
|
|
707
|
+
<td>ConcurrentHashMap<K, V></td>
|
|
708
|
+
<td>N/A</td>
|
|
709
|
+
<td>N/A</td>
|
|
710
|
+
</tr>
|
|
711
|
+
<tr>
|
|
712
|
+
<td>N/A</td>
|
|
713
|
+
<td>N/A</td>
|
|
714
|
+
<td>namedtuple</td>
|
|
715
|
+
<td>N/A</td>
|
|
716
|
+
</tr>
|
|
717
|
+
<tr>
|
|
718
|
+
<td>N/A</td>
|
|
719
|
+
<td>N/A</td>
|
|
720
|
+
<td>ChainMap</td>
|
|
721
|
+
<td>N/A</td>
|
|
722
|
+
</tr>
|
|
723
|
+
<tr>
|
|
724
|
+
<td>N/A</td>
|
|
725
|
+
<td>N/A</td>
|
|
726
|
+
<td>defaultdict</td>
|
|
727
|
+
<td>N/A</td>
|
|
728
|
+
</tr>
|
|
729
|
+
<tr>
|
|
730
|
+
<td>N/A</td>
|
|
731
|
+
<td>N/A</td>
|
|
732
|
+
<td>Counter</td>
|
|
733
|
+
<td>N/A</td>
|
|
734
|
+
</tr>
|
|
735
|
+
</table></div></div>
|
|
490
736
|
<div class="col-sidebar">
|
|
491
737
|
<div class="page-menu">
|
|
492
738
|
<div class="tsd-navigation settings">
|
|
@@ -508,11 +754,12 @@ Tarjan's Algorithm.</p>
|
|
|
508
754
|
<ul>
|
|
509
755
|
<li>
|
|
510
756
|
<ul>
|
|
511
|
-
<li><a href="#md:
|
|
757
|
+
<li><a href="#md:data-structure-typed"><span>Data <wbr/>Structure <wbr/>Typed</span></a></li>
|
|
512
758
|
<li>
|
|
513
759
|
<ul>
|
|
760
|
+
<li><a href="#md:brief"><span>Brief</span></a></li>
|
|
514
761
|
<li><a href="#md:built-in-classic-algorithms"><span>Built-<wbr/>in classic algorithms</span></a></li>
|
|
515
|
-
<li><a href="#md:
|
|
762
|
+
<li><a href="#md:installation-and-usage"><span>Installation and <wbr/>Usage</span></a></li>
|
|
516
763
|
<li>
|
|
517
764
|
<ul>
|
|
518
765
|
<li><a href="#md:npm"><span>npm</span></a></li>
|