data-structure-typed 1.32.0 → 1.32.2
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/.github/workflows/ci.yml +12 -1
- package/.prettierrc.js +1 -1
- package/CHANGELOG.md +1 -1
- package/README.md +63 -176
- package/coverage/clover.xml +717 -717
- package/coverage/coverage-final.json +21 -21
- package/coverage/coverage-summary.json +68 -0
- package/coverage/lcov-report/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/binary-tree/aa-tree.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/binary-tree/abstract-binary-tree.ts.html +19 -7
- package/coverage/lcov-report/src/data-structures/binary-tree/avl-tree.ts.html +5 -5
- package/coverage/lcov-report/src/data-structures/binary-tree/b-tree.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/binary-tree/binary-indexed-tree.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/binary-tree/binary-tree.ts.html +4 -4
- package/coverage/lcov-report/src/data-structures/binary-tree/bst.ts.html +7 -25
- package/coverage/lcov-report/src/data-structures/binary-tree/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/binary-tree/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/binary-tree/rb-tree.ts.html +4 -4
- package/coverage/lcov-report/src/data-structures/binary-tree/segment-tree.ts.html +2 -2
- package/coverage/lcov-report/src/data-structures/binary-tree/splay-tree.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/binary-tree/tree-multiset.ts.html +9 -9
- package/coverage/lcov-report/src/data-structures/binary-tree/two-three-tree.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/graph/abstract-graph.ts.html +17 -17
- package/coverage/lcov-report/src/data-structures/graph/directed-graph.ts.html +5 -5
- package/coverage/lcov-report/src/data-structures/graph/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/graph/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/graph/map-graph.ts.html +3 -3
- package/coverage/lcov-report/src/data-structures/graph/undirected-graph.ts.html +5 -5
- package/coverage/lcov-report/src/data-structures/hash/coordinate-map.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/hash/coordinate-set.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/hash/hash-table.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/hash/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/hash/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/hash/pair.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/hash/tree-map.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/hash/tree-set.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/heap/heap.ts.html +4 -4
- package/coverage/lcov-report/src/data-structures/heap/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/heap/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/heap/max-heap.ts.html +4 -4
- package/coverage/lcov-report/src/data-structures/heap/min-heap.ts.html +4 -4
- package/coverage/lcov-report/src/data-structures/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/linked-list/doubly-linked-list.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/linked-list/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/linked-list/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/linked-list/singly-linked-list.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/linked-list/skip-linked-list.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/matrix/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/matrix/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/matrix/matrix.ts.html +3 -3
- package/coverage/lcov-report/src/data-structures/matrix/matrix2d.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/matrix/navigator.ts.html +4 -4
- package/coverage/lcov-report/src/data-structures/matrix/vector2d.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/priority-queue/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/priority-queue/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/priority-queue/max-priority-queue.ts.html +6 -6
- package/coverage/lcov-report/src/data-structures/priority-queue/min-priority-queue.ts.html +3 -3
- package/coverage/lcov-report/src/data-structures/priority-queue/priority-queue.ts.html +32 -32
- package/coverage/lcov-report/src/data-structures/queue/deque.ts.html +5 -5
- package/coverage/lcov-report/src/data-structures/queue/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/queue/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/queue/queue.ts.html +2 -2
- package/coverage/lcov-report/src/data-structures/stack/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/stack/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/stack/stack.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/tree/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/tree/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/tree/tree.ts.html +2 -2
- package/coverage/lcov-report/src/data-structures/trie/index.html +1 -1
- package/coverage/lcov-report/src/data-structures/trie/index.ts.html +1 -1
- package/coverage/lcov-report/src/data-structures/trie/trie.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/index.ts.html +1 -1
- package/coverage/lcov-report/src/interfaces/index.html +1 -1
- package/coverage/lcov-report/src/interfaces/index.ts.html +1 -1
- package/coverage/lcov-report/src/types/data-structures/abstract-binary-tree.ts.html +1 -1
- package/coverage/lcov-report/src/types/data-structures/bst.ts.html +1 -1
- package/coverage/lcov-report/src/types/data-structures/directed-graph.ts.html +1 -1
- package/coverage/lcov-report/src/types/data-structures/index.html +1 -1
- package/coverage/lcov-report/src/types/data-structures/index.ts.html +1 -1
- package/coverage/lcov-report/src/types/data-structures/rb-tree.ts.html +1 -1
- package/coverage/lcov-report/src/types/index.html +1 -1
- package/coverage/lcov-report/src/types/index.ts.html +1 -1
- package/coverage/lcov-report/src/types/utils/index.html +1 -1
- package/coverage/lcov-report/src/types/utils/index.ts.html +1 -1
- package/coverage/lcov-report/src/utils/index.html +1 -1
- package/coverage/lcov-report/src/utils/index.ts.html +1 -1
- package/coverage/lcov-report/src/utils/utils.ts.html +4 -4
- package/coverage/lcov-report/test/utils/index.html +1 -1
- package/coverage/lcov-report/test/utils/index.ts.html +1 -1
- package/coverage/lcov-report/test/utils/magnitude.ts.html +1 -1
- package/coverage/lcov-report/test/utils/number.ts.html +1 -1
- package/coverage/lcov.info +1329 -1329
- package/dist/data-structures/binary-tree/abstract-binary-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/avl-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/bst.js.map +1 -1
- package/dist/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/tree-multiset.js.map +1 -1
- package/dist/data-structures/graph/abstract-graph.js.map +1 -1
- package/dist/data-structures/graph/directed-graph.js.map +1 -1
- package/dist/data-structures/graph/map-graph.js.map +1 -1
- package/dist/data-structures/graph/undirected-graph.js.map +1 -1
- package/dist/data-structures/heap/heap.js.map +1 -1
- package/dist/data-structures/heap/max-heap.js.map +1 -1
- package/dist/data-structures/heap/min-heap.js.map +1 -1
- package/dist/data-structures/matrix/matrix.js.map +1 -1
- package/dist/data-structures/matrix/navigator.js.map +1 -1
- package/dist/data-structures/priority-queue/max-priority-queue.js.map +1 -1
- package/dist/data-structures/priority-queue/min-priority-queue.js.map +1 -1
- package/dist/data-structures/priority-queue/priority-queue.js.map +1 -1
- package/dist/data-structures/queue/deque.js.map +1 -1
- package/dist/data-structures/queue/queue.js.map +1 -1
- package/dist/data-structures/tree/tree.js.map +1 -1
- package/dist/utils/utils.js.map +1 -1
- package/docs/classes/AVLTree.html +85 -85
- package/docs/classes/AVLTreeNode.html +15 -15
- package/docs/classes/AaTree.html +1 -1
- package/docs/classes/AbstractBinaryTree.html +78 -78
- package/docs/classes/AbstractBinaryTreeNode.html +21 -21
- package/docs/classes/AbstractEdge.html +11 -11
- package/docs/classes/AbstractGraph.html +36 -36
- package/docs/classes/AbstractVertex.html +8 -8
- package/docs/classes/ArrayDeque.html +14 -14
- package/docs/classes/BST.html +78 -78
- package/docs/classes/BSTNode.html +15 -15
- package/docs/classes/BTree.html +1 -1
- package/docs/classes/BinaryIndexedTree.html +9 -9
- package/docs/classes/BinaryTree.html +71 -71
- package/docs/classes/BinaryTreeNode.html +15 -15
- package/docs/classes/Character.html +4 -4
- package/docs/classes/CoordinateMap.html +9 -9
- package/docs/classes/CoordinateSet.html +8 -8
- package/docs/classes/Deque.html +34 -34
- package/docs/classes/DirectedEdge.html +15 -15
- package/docs/classes/DirectedGraph.html +52 -52
- package/docs/classes/DirectedVertex.html +6 -6
- package/docs/classes/DoublyLinkedList.html +37 -37
- package/docs/classes/DoublyLinkedListNode.html +11 -11
- package/docs/classes/HashTable.html +1 -1
- package/docs/classes/Heap.html +26 -26
- package/docs/classes/HeapItem.html +8 -8
- package/docs/classes/LinkedListQueue.html +35 -35
- package/docs/classes/MapEdge.html +13 -13
- package/docs/classes/MapGraph.html +56 -56
- package/docs/classes/MapVertex.html +12 -12
- package/docs/classes/Matrix2D.html +16 -16
- package/docs/classes/MatrixNTI2D.html +4 -4
- package/docs/classes/MaxHeap.html +26 -26
- package/docs/classes/MaxPriorityQueue.html +34 -34
- package/docs/classes/MinHeap.html +26 -26
- package/docs/classes/MinPriorityQueue.html +34 -34
- package/docs/classes/Navigator.html +10 -10
- package/docs/classes/ObjectDeque.html +25 -25
- package/docs/classes/Pair.html +1 -1
- package/docs/classes/PriorityQueue.html +32 -32
- package/docs/classes/Queue.html +22 -22
- package/docs/classes/RBTree.html +78 -78
- package/docs/classes/RBTreeNode.html +18 -18
- package/docs/classes/SegmentTree.html +17 -17
- package/docs/classes/SegmentTreeNode.html +20 -20
- package/docs/classes/SinglyLinkedList.html +35 -35
- package/docs/classes/SinglyLinkedListNode.html +8 -8
- package/docs/classes/SkipLinkedList.html +1 -1
- package/docs/classes/SplayTree.html +1 -1
- package/docs/classes/Stack.html +12 -12
- package/docs/classes/TreeMap.html +1 -1
- package/docs/classes/TreeMultiset.html +99 -99
- package/docs/classes/TreeMultisetNode.html +18 -18
- package/docs/classes/TreeNode.html +13 -13
- package/docs/classes/TreeSet.html +1 -1
- package/docs/classes/Trie.html +13 -13
- package/docs/classes/TrieNode.html +11 -11
- package/docs/classes/TwoThreeTree.html +1 -1
- package/docs/classes/UndirectedEdge.html +12 -12
- package/docs/classes/UndirectedGraph.html +40 -40
- package/docs/classes/UndirectedVertex.html +6 -6
- package/docs/classes/Vector2D.html +28 -28
- package/docs/enums/CP.html +4 -4
- package/docs/enums/FamilyPosition.html +8 -8
- package/docs/enums/LoopType.html +3 -3
- package/docs/enums/RBColor.html +3 -3
- package/docs/enums/TopologicalProperty.html +4 -4
- package/docs/functions/arrayRemove.html +1 -1
- package/docs/functions/isThunk.html +1 -1
- package/docs/functions/toThunk.html +1 -1
- package/docs/functions/trampoline.html +1 -1
- package/docs/functions/trampolineAsync.html +1 -1
- package/docs/functions/uuidV4.html +1 -1
- package/docs/index.html +21 -26
- package/docs/interfaces/IAVLTree.html +77 -77
- package/docs/interfaces/IAbstractBinaryTree.html +72 -72
- package/docs/interfaces/IAbstractBinaryTreeNode.html +14 -14
- package/docs/interfaces/IAbstractGraph.html +15 -15
- package/docs/interfaces/IBST.html +77 -77
- package/docs/interfaces/IDirectedGraph.html +23 -23
- package/docs/interfaces/IRBTree.html +77 -77
- package/docs/interfaces/IUNDirectedGraph.html +16 -16
- package/docs/types/AVLTreeNodeNested.html +1 -1
- package/docs/types/AVLTreeOptions.html +1 -1
- package/docs/types/AbstractBinaryTreeNodeNested.html +1 -1
- package/docs/types/AbstractBinaryTreeNodeProperties.html +1 -1
- package/docs/types/AbstractBinaryTreeNodeProperty.html +1 -1
- package/docs/types/AbstractBinaryTreeOptions.html +1 -1
- package/docs/types/BSTComparator.html +1 -1
- package/docs/types/BSTNodeNested.html +1 -1
- package/docs/types/BSTOptions.html +1 -1
- package/docs/types/BinaryTreeDeletedResult.html +1 -1
- package/docs/types/BinaryTreeNodeId.html +1 -1
- package/docs/types/BinaryTreeNodeNested.html +1 -1
- package/docs/types/BinaryTreeNodePropertyName.html +1 -1
- package/docs/types/BinaryTreeOptions.html +1 -1
- package/docs/types/DFSOrderPattern.html +1 -1
- package/docs/types/DijkstraResult.html +1 -1
- package/docs/types/Direction.html +1 -1
- package/docs/types/DummyAny.html +1 -1
- package/docs/types/EdgeId.html +1 -1
- package/docs/types/HeapOptions.html +1 -1
- package/docs/types/IAVLTreeNode.html +1 -1
- package/docs/types/IBSTNode.html +1 -1
- package/docs/types/IBinaryTree.html +1 -1
- package/docs/types/IBinaryTreeNode.html +1 -1
- package/docs/types/IRBTreeNode.html +1 -1
- package/docs/types/ITreeMultiset.html +1 -1
- package/docs/types/ITreeMultisetNode.html +1 -1
- package/docs/types/KeyValueObject.html +1 -1
- package/docs/types/KeyValueObjectWithId.html +1 -1
- package/docs/types/MapGraphCoordinate.html +1 -1
- package/docs/types/NavigatorParams.html +1 -1
- package/docs/types/NodeOrPropertyName.html +1 -1
- package/docs/types/NonNumberNonObjectButDefined.html +1 -1
- package/docs/types/ObjectWithNonNumberId.html +1 -1
- package/docs/types/ObjectWithNumberId.html +1 -1
- package/docs/types/ObjectWithoutId.html +1 -1
- package/docs/types/PriorityQueueComparator.html +1 -1
- package/docs/types/PriorityQueueDFSOrderPattern.html +1 -1
- package/docs/types/PriorityQueueOptions.html +1 -1
- package/docs/types/RBTreeNodeNested.html +1 -1
- package/docs/types/RBTreeOptions.html +1 -1
- package/docs/types/RestrictValById.html +1 -1
- package/docs/types/SegmentTreeNodeVal.html +1 -1
- package/docs/types/SpecifyOptional.html +1 -1
- package/docs/types/Thunk.html +1 -1
- package/docs/types/ToThunkFn.html +1 -1
- package/docs/types/TopologicalStatus.html +1 -1
- package/docs/types/TreeMultisetNodeNested.html +1 -1
- package/docs/types/TreeMultisetOptions.html +1 -1
- package/docs/types/TrlAsyncFn.html +1 -1
- package/docs/types/TrlFn.html +1 -1
- package/docs/types/Turning.html +1 -1
- package/docs/types/VertexId.html +1 -1
- package/docs/variables/THUNK_SYMBOL.html +1 -1
- package/jest.config.js +1 -0
- package/package.json +18 -6
- package/.auto-changelog-template.hbs +0 -36
- package/rename_clear_files.sh +0 -29
- package/tsconfig.build.json +0 -33
package/.github/workflows/ci.yml
CHANGED
|
@@ -4,6 +4,17 @@ on:
|
|
|
4
4
|
push:
|
|
5
5
|
branches:
|
|
6
6
|
- main
|
|
7
|
+
# Ignore changes in folders with generated contents or documentation.
|
|
8
|
+
# Need to match git add parameters below.
|
|
9
|
+
paths-ignore:
|
|
10
|
+
- 'lib/**'
|
|
11
|
+
- 'dist/**'
|
|
12
|
+
- 'docs/**'
|
|
13
|
+
- 'coverage/**'
|
|
14
|
+
- '**/*.md'
|
|
15
|
+
pull_request:
|
|
16
|
+
branches:
|
|
17
|
+
- main
|
|
7
18
|
|
|
8
19
|
jobs:
|
|
9
20
|
build:
|
|
@@ -26,5 +37,5 @@ jobs:
|
|
|
26
37
|
- name: Build
|
|
27
38
|
run: npm run build
|
|
28
39
|
|
|
29
|
-
- name: Run tests
|
|
40
|
+
- name: Run tests and documentation
|
|
30
41
|
run: npm test
|
package/.prettierrc.js
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
- [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
|
|
9
9
|
- [`auto-changelog`](https://github.com/CookPete/auto-changelog)
|
|
10
10
|
|
|
11
|
-
## [v1.32.
|
|
11
|
+
## [v1.32.2](https://github.com/zrwusa/data-structure-typed/compare/v1.12.9...main) (upcoming)
|
|
12
12
|
|
|
13
13
|
## [v1.12.9](https://github.com/zrwusa/data-structure-typed/compare/v1.12.8...v1.12.9) (14 August 2023)
|
|
14
14
|
|
package/README.md
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Data Structure Typed
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+

|
|
6
|
+

|
|
7
|
+

|
|
8
|
+

|
|
2
9
|
|
|
3
10
|
## Brief
|
|
4
11
|
Data Structures of Javascript & TypeScript.
|
|
@@ -8,8 +15,7 @@ DFS(Depth-First Search), DFSIterative, BFS(Breadth-First Search),
|
|
|
8
15
|
morris, Bellman-Ford Algorithm, Dijkstra's Algorithm, Floyd-Warshall Algorithm,
|
|
9
16
|
Tarjan's Algorithm.
|
|
10
17
|
|
|
11
|
-
|
|
12
|
-
## install
|
|
18
|
+
## Installation and Usage
|
|
13
19
|
### npm
|
|
14
20
|
```bash
|
|
15
21
|
npm install data-structure-typed --save
|
|
@@ -22,7 +28,7 @@ yarn add data-structure-typed
|
|
|
22
28
|
```html
|
|
23
29
|
<script src="https://cdn.jsdelivr.net/npm/data-structure-typed/umd/bundle.min.js"></script>
|
|
24
30
|
```
|
|
25
|
-
```
|
|
31
|
+
```js
|
|
26
32
|
const {AVLTree} = dataStructureTyped;
|
|
27
33
|
const {Heap, MinHeap, SinglyLinkedList, Stack, AVLTreeNode, BST, Trie, DirectedGraph, DirectedVertex, TreeMultiset} = dataStructureTyped;
|
|
28
34
|
```
|
|
@@ -46,7 +52,7 @@ const {Heap, MinHeap, SinglyLinkedList, Stack, AVLTreeNode, BST, Trie, DirectedG
|
|
|
46
52
|
## Code Snippet
|
|
47
53
|
### Binary Search Tree (BST) snippet
|
|
48
54
|
#### TS
|
|
49
|
-
```
|
|
55
|
+
```ts
|
|
50
56
|
import {BST, BSTNode} from 'data-structure-typed';
|
|
51
57
|
|
|
52
58
|
const bst = new BST();
|
|
@@ -66,7 +72,6 @@ const {Heap, MinHeap, SinglyLinkedList, Stack, AVLTreeNode, BST, Trie, DirectedG
|
|
|
66
72
|
bst.get(6); // null
|
|
67
73
|
bst.isAVLBalanced(); // true
|
|
68
74
|
bst.BFS()[0] === 11; // true
|
|
69
|
-
|
|
70
75
|
|
|
71
76
|
const objBST = new BST<BSTNode<{ id: number, keyA: number }>>();
|
|
72
77
|
objBST.add(11, {id: 11, keyA: 11});
|
|
@@ -81,7 +86,7 @@ const {Heap, MinHeap, SinglyLinkedList, Stack, AVLTreeNode, BST, Trie, DirectedG
|
|
|
81
86
|
objBST.remove(11);
|
|
82
87
|
```
|
|
83
88
|
#### JS
|
|
84
|
-
```
|
|
89
|
+
```js
|
|
85
90
|
const {BST, BSTNode} = require('data-structure-typed');
|
|
86
91
|
|
|
87
92
|
const bst = new BST();
|
|
@@ -116,84 +121,80 @@ const {Heap, MinHeap, SinglyLinkedList, Stack, AVLTreeNode, BST, Trie, DirectedG
|
|
|
116
121
|
|
|
117
122
|
objBST.remove(11);
|
|
118
123
|
|
|
119
|
-
|
|
120
124
|
const avlTree = new AVLTree();
|
|
121
125
|
avlTree.addMany([11, 3, 15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5])
|
|
122
126
|
avlTree.isAVLBalanced(); // true
|
|
123
127
|
avlTree.remove(10);
|
|
124
128
|
avlTree.isAVLBalanced(); // true
|
|
125
|
-
|
|
126
129
|
```
|
|
127
130
|
|
|
128
131
|
### AVLTree snippet
|
|
129
132
|
#### TS
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
133
|
+
```ts
|
|
134
|
+
import {AVLTree} from 'data-structure-typed';
|
|
135
|
+
|
|
136
|
+
const avlTree = new AVLTree();
|
|
137
|
+
avlTree.addMany([11, 3, 15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5])
|
|
138
|
+
avlTree.isAVLBalanced(); // true
|
|
139
|
+
avlTree.remove(10);
|
|
140
|
+
avlTree.isAVLBalanced(); // true
|
|
139
141
|
```
|
|
140
142
|
#### JS
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
143
|
+
```js
|
|
144
|
+
const {AVLTree} = require('data-structure-typed');
|
|
145
|
+
|
|
146
|
+
const avlTree = new AVLTree();
|
|
147
|
+
avlTree.addMany([11, 3, 15, 1, 8, 13, 16, 2, 6, 9, 12, 14, 4, 7, 10, 5])
|
|
148
|
+
avlTree.isAVLBalanced(); // true
|
|
149
|
+
avlTree.remove(10);
|
|
150
|
+
avlTree.isAVLBalanced(); // true
|
|
150
151
|
```
|
|
151
152
|
|
|
152
153
|
### Directed Graph simple snippet
|
|
153
154
|
#### TS or JS
|
|
154
|
-
```
|
|
155
|
+
```ts
|
|
155
156
|
import {DirectedGraph} from 'data-structure-typed';
|
|
156
157
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
158
|
+
const graph = new DirectedGraph();
|
|
159
|
+
|
|
160
|
+
graph.addVertex('A');
|
|
161
|
+
graph.addVertex('B');
|
|
162
|
+
|
|
163
|
+
graph.hasVertex('A'); // true
|
|
164
|
+
graph.hasVertex('B'); // true
|
|
165
|
+
graph.hasVertex('C'); // false
|
|
166
|
+
|
|
167
|
+
graph.addEdge('A', 'B');
|
|
168
|
+
graph.hasEdge('A', 'B'); // true
|
|
169
|
+
graph.hasEdge('B', 'A'); // false
|
|
170
|
+
|
|
171
|
+
graph.removeEdgeSrcToDest('A', 'B');
|
|
172
|
+
graph.hasEdge('A', 'B'); // false
|
|
173
|
+
|
|
174
|
+
graph.addVertex('C');
|
|
175
|
+
|
|
176
|
+
graph.addEdge('A', 'B');
|
|
177
|
+
graph.addEdge('B', 'C');
|
|
178
|
+
|
|
179
|
+
const topologicalOrderIds = graph.topologicalSort(); // ['A', 'B', 'C']
|
|
179
180
|
```
|
|
180
181
|
|
|
181
182
|
### Undirected Graph snippet
|
|
182
183
|
#### TS or JS
|
|
183
|
-
```
|
|
184
|
+
```ts
|
|
184
185
|
import {UndirectedGraph} from 'data-structure-typed';
|
|
185
186
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
187
|
+
const graph = new UndirectedGraph();
|
|
188
|
+
graph.addVertex('A');
|
|
189
|
+
graph.addVertex('B');
|
|
190
|
+
graph.addVertex('C');
|
|
191
|
+
graph.addVertex('D');
|
|
192
|
+
graph.removeVertex('C');
|
|
193
|
+
graph.addEdge('A', 'B');
|
|
194
|
+
graph.addEdge('B', 'D');
|
|
195
|
+
|
|
196
|
+
const dijkstraResult = graph.dijkstra('A');
|
|
197
|
+
Array.from(dijkstraResult?.seen ?? []).map(vertex => vertex.id) // ['A', 'B', 'D']
|
|
197
198
|
```
|
|
198
199
|
|
|
199
200
|
## Data Structures
|
|
@@ -320,20 +321,6 @@ import {UndirectedGraph} from 'data-structure-typed';
|
|
|
320
321
|
<td><a href="https://data-structure-typed-docs.vercel.app/classes/Stack.html"><span>Stack</span></a></td>
|
|
321
322
|
<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
|
|
322
323
|
</tr>
|
|
323
|
-
|
|
324
|
-
[//]: # (<tr>)
|
|
325
|
-
|
|
326
|
-
[//]: # (<td>Hash</td>)
|
|
327
|
-
|
|
328
|
-
[//]: # (<td></td>)
|
|
329
|
-
|
|
330
|
-
[//]: # (<td></td>)
|
|
331
|
-
|
|
332
|
-
[//]: # (<td><a href="https://data-structure-typed-docs.vercel.app/classes/HashTable.html"><span>HashTable</span></a></td>)
|
|
333
|
-
|
|
334
|
-
[//]: # (<td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>)
|
|
335
|
-
|
|
336
|
-
[//]: # (</tr>)
|
|
337
324
|
<tr>
|
|
338
325
|
<td>Coordinate Set</td>
|
|
339
326
|
<td></td>
|
|
@@ -386,100 +373,6 @@ import {UndirectedGraph} from 'data-structure-typed';
|
|
|
386
373
|
</tbody>
|
|
387
374
|
</table>
|
|
388
375
|
|
|
389
|
-
[//]: # (## API docs)
|
|
390
|
-
|
|
391
|
-
[//]: # (<ul>)
|
|
392
|
-
|
|
393
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/AVLTree.html" rel="nofollow"><span>AVLTree</span></a></li>)
|
|
394
|
-
|
|
395
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/AVLTreeNode.html" rel="nofollow"><span>AVLTreeNode</span></a></li>)
|
|
396
|
-
|
|
397
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/AbstractEdge.html" rel="nofollow"><span>AbstractEdge</span></a></li>)
|
|
398
|
-
|
|
399
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/AbstractGraph.html" rel="nofollow"><span>AbstractGraph</span></a></li>)
|
|
400
|
-
|
|
401
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/AbstractVertex.html" rel="nofollow"><span>AbstractVertex</span></a></li>)
|
|
402
|
-
|
|
403
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/ArrayDeque.html" rel="nofollow"><span>ArrayDeque</span></a></li>)
|
|
404
|
-
|
|
405
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/BST.html" rel="nofollow"><span>BST</span></a></li>)
|
|
406
|
-
|
|
407
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/BSTNode.html" rel="nofollow"><span>BSTNode</span></a></li>)
|
|
408
|
-
|
|
409
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryIndexedTree.html" rel="nofollow"><span>BinaryIndexedTree</span></a></li>)
|
|
410
|
-
|
|
411
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryTree.html" rel="nofollow"><span>BinaryTree</span></a></li>)
|
|
412
|
-
|
|
413
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/BinaryTreeNode.html" rel="nofollow"><span>BinaryTreeNode</span></a></li>)
|
|
414
|
-
|
|
415
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/Character.html" rel="nofollow"><span>Character</span></a></li>)
|
|
416
|
-
|
|
417
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/CoordinateMap.html" rel="nofollow"><span>CoordinateMap</span></a></li>)
|
|
418
|
-
|
|
419
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/CoordinateSet.html" rel="nofollow"><span>CoordinateSet</span></a></li>)
|
|
420
|
-
|
|
421
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/Deque.html" rel="nofollow"><span>Deque</span></a></li>)
|
|
422
|
-
|
|
423
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/DirectedEdge.html" rel="nofollow"><span>DirectedEdge</span></a></li>)
|
|
424
|
-
|
|
425
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/DirectedGraph.html" rel="nofollow"><span>DirectedGraph</span></a></li>)
|
|
426
|
-
|
|
427
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/DirectedVertex.html" rel="nofollow"><span>DirectedVertex</span></a></li>)
|
|
428
|
-
|
|
429
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/DoublyLinkedList.html" rel="nofollow"><span>DoublyLinkedList</span></a></li>)
|
|
430
|
-
|
|
431
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/DoublyLinkedListNode.html" rel="nofollow"><span>DoublyLinkedListNode</span></a></li>)
|
|
432
|
-
|
|
433
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/Heap.html" rel="nofollow"><span>Heap</span></a></li>)
|
|
434
|
-
|
|
435
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/Matrix2D.html" rel="nofollow"><span>Matrix2D</span></a></li>)
|
|
436
|
-
|
|
437
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/MatrixNTI2D.html" rel="nofollow"><span>MatrixNTI2D</span></a></li>)
|
|
438
|
-
|
|
439
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/MaxHeap.html" rel="nofollow"><span>MaxHeap</span></a></li>)
|
|
440
|
-
|
|
441
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/MaxPriorityQueue.html" rel="nofollow"><span>MaxPriorityQueue</span></a></li>)
|
|
442
|
-
|
|
443
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/MinHeap.html" rel="nofollow"><span>MinHeap</span></a></li>)
|
|
444
|
-
|
|
445
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/MinPriorityQueue.html" rel="nofollow"><span>MinPriorityQueue</span></a></li>)
|
|
446
|
-
|
|
447
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/Navigator.html" rel="nofollow"><span>Navigator</span></a></li>)
|
|
448
|
-
|
|
449
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/ObjectDeque.html" rel="nofollow"><span>ObjectDeque</span></a></li>)
|
|
450
|
-
|
|
451
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/PriorityQueue.html" rel="nofollow"><span>PriorityQueue</span></a></li>)
|
|
452
|
-
|
|
453
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/Queue.html" rel="nofollow"><span>Queue</span></a></li>)
|
|
454
|
-
|
|
455
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/SegmentTree.html" rel="nofollow"><span>SegmentTree</span></a></li>)
|
|
456
|
-
|
|
457
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/SegmentTreeNode.html" rel="nofollow"><span>SegmentTreeNode</span></a></li>)
|
|
458
|
-
|
|
459
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedList.html" rel="nofollow"><span>SinglyLinkedList</span></a></li>)
|
|
460
|
-
|
|
461
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/SinglyLinkedListNode.html" rel="nofollow"><span>SinglyLinkedListNode</span></a></li>)
|
|
462
|
-
|
|
463
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/Stack.html" rel="nofollow"><span>Stack</span></a></li>)
|
|
464
|
-
|
|
465
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/TreeMultiSet.html" rel="nofollow"><span>TreeMultiSet</span></a></li>)
|
|
466
|
-
|
|
467
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/Trie.html" rel="nofollow"><span>Trie</span></a></li>)
|
|
468
|
-
|
|
469
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/TrieNode.html" rel="nofollow"><span>TrieNode</span></a></li>)
|
|
470
|
-
|
|
471
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/UndirectedEdge.html" rel="nofollow"><span>UndirectedEdge</span></a></li>)
|
|
472
|
-
|
|
473
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/UndirectedGraph.html" rel="nofollow"><span>UndirectedGraph</span></a></li>)
|
|
474
|
-
|
|
475
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/UndirectedVertex.html" rel="nofollow"><span>UndirectedVertex</span></a></li>)
|
|
476
|
-
|
|
477
|
-
[//]: # (<li><a href="https://data-structure-typed-docs.vercel.app/classes/Vector2D.html" rel="nofollow"><span>Vector2D</span></a></li>)
|
|
478
|
-
|
|
479
|
-
[//]: # (</ul>)
|
|
480
|
-
|
|
481
|
-
# Why
|
|
482
|
-
|
|
483
376
|
## Code design
|
|
484
377
|
By strictly adhering to object-oriented design (BinaryTree -> BST -> AVLTree -> TreeMultiset), you can seamlessly inherit the existing data structures to implement the customized ones you need. Object-oriented design stands as the optimal approach to data structure design.
|
|
485
378
|
|
|
@@ -742,9 +635,3 @@ By strictly adhering to object-oriented design (BinaryTree -> BST -> AVLTree ->
|
|
|
742
635
|
</tr>
|
|
743
636
|
</tbody>
|
|
744
637
|
</table>
|
|
745
|
-
|
|
746
|
-
[//]: # ()
|
|
747
|
-
|
|
748
|
-

|
|
749
|
-
|
|
750
|
-

|