data-structure-typed 1.32.1 → 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.
Files changed (325) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +57 -187
  3. package/coverage/clover.xml +33 -33
  4. package/coverage/coverage-final.json +2 -2
  5. package/coverage/lcov-report/index.html +1 -1
  6. package/coverage/lcov-report/src/data-structures/binary-tree/aa-tree.ts.html +1 -1
  7. package/coverage/lcov-report/src/data-structures/binary-tree/abstract-binary-tree.ts.html +1 -1
  8. package/coverage/lcov-report/src/data-structures/binary-tree/avl-tree.ts.html +1 -1
  9. package/coverage/lcov-report/src/data-structures/binary-tree/b-tree.ts.html +1 -1
  10. package/coverage/lcov-report/src/data-structures/binary-tree/binary-indexed-tree.ts.html +1 -1
  11. package/coverage/lcov-report/src/data-structures/binary-tree/binary-tree.ts.html +1 -1
  12. package/coverage/lcov-report/src/data-structures/binary-tree/bst.ts.html +1 -1
  13. package/coverage/lcov-report/src/data-structures/binary-tree/index.html +1 -1
  14. package/coverage/lcov-report/src/data-structures/binary-tree/index.ts.html +1 -1
  15. package/coverage/lcov-report/src/data-structures/binary-tree/rb-tree.ts.html +1 -1
  16. package/coverage/lcov-report/src/data-structures/binary-tree/segment-tree.ts.html +1 -1
  17. package/coverage/lcov-report/src/data-structures/binary-tree/splay-tree.ts.html +1 -1
  18. package/coverage/lcov-report/src/data-structures/binary-tree/tree-multiset.ts.html +1 -1
  19. package/coverage/lcov-report/src/data-structures/binary-tree/two-three-tree.ts.html +1 -1
  20. package/coverage/lcov-report/src/data-structures/graph/abstract-graph.ts.html +1 -1
  21. package/coverage/lcov-report/src/data-structures/graph/directed-graph.ts.html +1 -1
  22. package/coverage/lcov-report/src/data-structures/graph/index.html +1 -1
  23. package/coverage/lcov-report/src/data-structures/graph/index.ts.html +1 -1
  24. package/coverage/lcov-report/src/data-structures/graph/map-graph.ts.html +1 -1
  25. package/coverage/lcov-report/src/data-structures/graph/undirected-graph.ts.html +1 -1
  26. package/coverage/lcov-report/src/data-structures/hash/coordinate-map.ts.html +1 -1
  27. package/coverage/lcov-report/src/data-structures/hash/coordinate-set.ts.html +1 -1
  28. package/coverage/lcov-report/src/data-structures/hash/hash-table.ts.html +1 -1
  29. package/coverage/lcov-report/src/data-structures/hash/index.html +1 -1
  30. package/coverage/lcov-report/src/data-structures/hash/index.ts.html +1 -1
  31. package/coverage/lcov-report/src/data-structures/hash/pair.ts.html +1 -1
  32. package/coverage/lcov-report/src/data-structures/hash/tree-map.ts.html +1 -1
  33. package/coverage/lcov-report/src/data-structures/hash/tree-set.ts.html +1 -1
  34. package/coverage/lcov-report/src/data-structures/heap/heap.ts.html +1 -1
  35. package/coverage/lcov-report/src/data-structures/heap/index.html +1 -1
  36. package/coverage/lcov-report/src/data-structures/heap/index.ts.html +1 -1
  37. package/coverage/lcov-report/src/data-structures/heap/max-heap.ts.html +1 -1
  38. package/coverage/lcov-report/src/data-structures/heap/min-heap.ts.html +1 -1
  39. package/coverage/lcov-report/src/data-structures/index.html +1 -1
  40. package/coverage/lcov-report/src/data-structures/index.ts.html +1 -1
  41. package/coverage/lcov-report/src/data-structures/linked-list/doubly-linked-list.ts.html +1 -1
  42. package/coverage/lcov-report/src/data-structures/linked-list/index.html +1 -1
  43. package/coverage/lcov-report/src/data-structures/linked-list/index.ts.html +1 -1
  44. package/coverage/lcov-report/src/data-structures/linked-list/singly-linked-list.ts.html +1 -1
  45. package/coverage/lcov-report/src/data-structures/linked-list/skip-linked-list.ts.html +1 -1
  46. package/coverage/lcov-report/src/data-structures/matrix/index.html +1 -1
  47. package/coverage/lcov-report/src/data-structures/matrix/index.ts.html +1 -1
  48. package/coverage/lcov-report/src/data-structures/matrix/matrix.ts.html +1 -1
  49. package/coverage/lcov-report/src/data-structures/matrix/matrix2d.ts.html +1 -1
  50. package/coverage/lcov-report/src/data-structures/matrix/navigator.ts.html +1 -1
  51. package/coverage/lcov-report/src/data-structures/matrix/vector2d.ts.html +1 -1
  52. package/coverage/lcov-report/src/data-structures/priority-queue/index.html +1 -1
  53. package/coverage/lcov-report/src/data-structures/priority-queue/index.ts.html +1 -1
  54. package/coverage/lcov-report/src/data-structures/priority-queue/max-priority-queue.ts.html +4 -4
  55. package/coverage/lcov-report/src/data-structures/priority-queue/min-priority-queue.ts.html +1 -1
  56. package/coverage/lcov-report/src/data-structures/priority-queue/priority-queue.ts.html +29 -29
  57. package/coverage/lcov-report/src/data-structures/queue/deque.ts.html +1 -1
  58. package/coverage/lcov-report/src/data-structures/queue/index.html +1 -1
  59. package/coverage/lcov-report/src/data-structures/queue/index.ts.html +1 -1
  60. package/coverage/lcov-report/src/data-structures/queue/queue.ts.html +1 -1
  61. package/coverage/lcov-report/src/data-structures/stack/index.html +1 -1
  62. package/coverage/lcov-report/src/data-structures/stack/index.ts.html +1 -1
  63. package/coverage/lcov-report/src/data-structures/stack/stack.ts.html +1 -1
  64. package/coverage/lcov-report/src/data-structures/tree/index.html +1 -1
  65. package/coverage/lcov-report/src/data-structures/tree/index.ts.html +1 -1
  66. package/coverage/lcov-report/src/data-structures/tree/tree.ts.html +1 -1
  67. package/coverage/lcov-report/src/data-structures/trie/index.html +1 -1
  68. package/coverage/lcov-report/src/data-structures/trie/index.ts.html +1 -1
  69. package/coverage/lcov-report/src/data-structures/trie/trie.ts.html +1 -1
  70. package/coverage/lcov-report/src/index.html +1 -1
  71. package/coverage/lcov-report/src/index.ts.html +1 -1
  72. package/coverage/lcov-report/src/interfaces/index.html +1 -1
  73. package/coverage/lcov-report/src/interfaces/index.ts.html +1 -1
  74. package/coverage/lcov-report/src/types/data-structures/abstract-binary-tree.ts.html +1 -1
  75. package/coverage/lcov-report/src/types/data-structures/bst.ts.html +1 -1
  76. package/coverage/lcov-report/src/types/data-structures/directed-graph.ts.html +1 -1
  77. package/coverage/lcov-report/src/types/data-structures/index.html +1 -1
  78. package/coverage/lcov-report/src/types/data-structures/index.ts.html +1 -1
  79. package/coverage/lcov-report/src/types/data-structures/rb-tree.ts.html +1 -1
  80. package/coverage/lcov-report/src/types/index.html +1 -1
  81. package/coverage/lcov-report/src/types/index.ts.html +1 -1
  82. package/coverage/lcov-report/src/types/utils/index.html +1 -1
  83. package/coverage/lcov-report/src/types/utils/index.ts.html +1 -1
  84. package/coverage/lcov-report/src/utils/index.html +1 -1
  85. package/coverage/lcov-report/src/utils/index.ts.html +1 -1
  86. package/coverage/lcov-report/src/utils/utils.ts.html +1 -1
  87. package/coverage/lcov-report/test/utils/index.html +1 -1
  88. package/coverage/lcov-report/test/utils/index.ts.html +1 -1
  89. package/coverage/lcov-report/test/utils/magnitude.ts.html +1 -1
  90. package/coverage/lcov-report/test/utils/number.ts.html +1 -1
  91. package/coverage/lcov.info +51 -51
  92. package/docs/classes/AVLTree.html +85 -85
  93. package/docs/classes/AVLTreeNode.html +15 -15
  94. package/docs/classes/AaTree.html +1 -1
  95. package/docs/classes/AbstractBinaryTree.html +78 -78
  96. package/docs/classes/AbstractBinaryTreeNode.html +21 -21
  97. package/docs/classes/AbstractEdge.html +11 -11
  98. package/docs/classes/AbstractGraph.html +36 -36
  99. package/docs/classes/AbstractVertex.html +8 -8
  100. package/docs/classes/ArrayDeque.html +14 -14
  101. package/docs/classes/BST.html +78 -78
  102. package/docs/classes/BSTNode.html +15 -15
  103. package/docs/classes/BTree.html +1 -1
  104. package/docs/classes/BinaryIndexedTree.html +9 -9
  105. package/docs/classes/BinaryTree.html +71 -71
  106. package/docs/classes/BinaryTreeNode.html +15 -15
  107. package/docs/classes/Character.html +4 -4
  108. package/docs/classes/CoordinateMap.html +9 -9
  109. package/docs/classes/CoordinateSet.html +8 -8
  110. package/docs/classes/Deque.html +34 -34
  111. package/docs/classes/DirectedEdge.html +15 -15
  112. package/docs/classes/DirectedGraph.html +52 -52
  113. package/docs/classes/DirectedVertex.html +6 -6
  114. package/docs/classes/DoublyLinkedList.html +37 -37
  115. package/docs/classes/DoublyLinkedListNode.html +11 -11
  116. package/docs/classes/HashTable.html +1 -1
  117. package/docs/classes/Heap.html +26 -26
  118. package/docs/classes/HeapItem.html +8 -8
  119. package/docs/classes/LinkedListQueue.html +35 -35
  120. package/docs/classes/MapEdge.html +13 -13
  121. package/docs/classes/MapGraph.html +56 -56
  122. package/docs/classes/MapVertex.html +12 -12
  123. package/docs/classes/Matrix2D.html +16 -16
  124. package/docs/classes/MatrixNTI2D.html +4 -4
  125. package/docs/classes/MaxHeap.html +26 -26
  126. package/docs/classes/MaxPriorityQueue.html +34 -34
  127. package/docs/classes/MinHeap.html +26 -26
  128. package/docs/classes/MinPriorityQueue.html +34 -34
  129. package/docs/classes/Navigator.html +10 -10
  130. package/docs/classes/ObjectDeque.html +25 -25
  131. package/docs/classes/Pair.html +1 -1
  132. package/docs/classes/PriorityQueue.html +32 -32
  133. package/docs/classes/Queue.html +22 -22
  134. package/docs/classes/RBTree.html +78 -78
  135. package/docs/classes/RBTreeNode.html +18 -18
  136. package/docs/classes/SegmentTree.html +17 -17
  137. package/docs/classes/SegmentTreeNode.html +20 -20
  138. package/docs/classes/SinglyLinkedList.html +35 -35
  139. package/docs/classes/SinglyLinkedListNode.html +8 -8
  140. package/docs/classes/SkipLinkedList.html +1 -1
  141. package/docs/classes/SplayTree.html +1 -1
  142. package/docs/classes/Stack.html +12 -12
  143. package/docs/classes/TreeMap.html +1 -1
  144. package/docs/classes/TreeMultiset.html +99 -99
  145. package/docs/classes/TreeMultisetNode.html +18 -18
  146. package/docs/classes/TreeNode.html +13 -13
  147. package/docs/classes/TreeSet.html +1 -1
  148. package/docs/classes/Trie.html +13 -13
  149. package/docs/classes/TrieNode.html +11 -11
  150. package/docs/classes/TwoThreeTree.html +1 -1
  151. package/docs/classes/UndirectedEdge.html +12 -12
  152. package/docs/classes/UndirectedGraph.html +40 -40
  153. package/docs/classes/UndirectedVertex.html +6 -6
  154. package/docs/classes/Vector2D.html +28 -28
  155. package/docs/enums/CP.html +4 -4
  156. package/docs/enums/FamilyPosition.html +8 -8
  157. package/docs/enums/LoopType.html +3 -3
  158. package/docs/enums/RBColor.html +3 -3
  159. package/docs/enums/TopologicalProperty.html +4 -4
  160. package/docs/functions/arrayRemove.html +1 -1
  161. package/docs/functions/isThunk.html +1 -1
  162. package/docs/functions/toThunk.html +1 -1
  163. package/docs/functions/trampoline.html +1 -1
  164. package/docs/functions/trampolineAsync.html +1 -1
  165. package/docs/functions/uuidV4.html +1 -1
  166. package/docs/index.html +13 -17
  167. package/docs/interfaces/IAVLTree.html +77 -77
  168. package/docs/interfaces/IAbstractBinaryTree.html +72 -72
  169. package/docs/interfaces/IAbstractBinaryTreeNode.html +14 -14
  170. package/docs/interfaces/IAbstractGraph.html +15 -15
  171. package/docs/interfaces/IBST.html +77 -77
  172. package/docs/interfaces/IDirectedGraph.html +23 -23
  173. package/docs/interfaces/IRBTree.html +77 -77
  174. package/docs/interfaces/IUNDirectedGraph.html +16 -16
  175. package/docs/types/AVLTreeNodeNested.html +1 -1
  176. package/docs/types/AVLTreeOptions.html +1 -1
  177. package/docs/types/AbstractBinaryTreeNodeNested.html +1 -1
  178. package/docs/types/AbstractBinaryTreeNodeProperties.html +1 -1
  179. package/docs/types/AbstractBinaryTreeNodeProperty.html +1 -1
  180. package/docs/types/AbstractBinaryTreeOptions.html +1 -1
  181. package/docs/types/BSTComparator.html +1 -1
  182. package/docs/types/BSTNodeNested.html +1 -1
  183. package/docs/types/BSTOptions.html +1 -1
  184. package/docs/types/BinaryTreeDeletedResult.html +1 -1
  185. package/docs/types/BinaryTreeNodeId.html +1 -1
  186. package/docs/types/BinaryTreeNodeNested.html +1 -1
  187. package/docs/types/BinaryTreeNodePropertyName.html +1 -1
  188. package/docs/types/BinaryTreeOptions.html +1 -1
  189. package/docs/types/DFSOrderPattern.html +1 -1
  190. package/docs/types/DijkstraResult.html +1 -1
  191. package/docs/types/Direction.html +1 -1
  192. package/docs/types/DummyAny.html +1 -1
  193. package/docs/types/EdgeId.html +1 -1
  194. package/docs/types/HeapOptions.html +1 -1
  195. package/docs/types/IAVLTreeNode.html +1 -1
  196. package/docs/types/IBSTNode.html +1 -1
  197. package/docs/types/IBinaryTree.html +1 -1
  198. package/docs/types/IBinaryTreeNode.html +1 -1
  199. package/docs/types/IRBTreeNode.html +1 -1
  200. package/docs/types/ITreeMultiset.html +1 -1
  201. package/docs/types/ITreeMultisetNode.html +1 -1
  202. package/docs/types/KeyValueObject.html +1 -1
  203. package/docs/types/KeyValueObjectWithId.html +1 -1
  204. package/docs/types/MapGraphCoordinate.html +1 -1
  205. package/docs/types/NavigatorParams.html +1 -1
  206. package/docs/types/NodeOrPropertyName.html +1 -1
  207. package/docs/types/NonNumberNonObjectButDefined.html +1 -1
  208. package/docs/types/ObjectWithNonNumberId.html +1 -1
  209. package/docs/types/ObjectWithNumberId.html +1 -1
  210. package/docs/types/ObjectWithoutId.html +1 -1
  211. package/docs/types/PriorityQueueComparator.html +1 -1
  212. package/docs/types/PriorityQueueDFSOrderPattern.html +1 -1
  213. package/docs/types/PriorityQueueOptions.html +1 -1
  214. package/docs/types/RBTreeNodeNested.html +1 -1
  215. package/docs/types/RBTreeOptions.html +1 -1
  216. package/docs/types/RestrictValById.html +1 -1
  217. package/docs/types/SegmentTreeNodeVal.html +1 -1
  218. package/docs/types/SpecifyOptional.html +1 -1
  219. package/docs/types/Thunk.html +1 -1
  220. package/docs/types/ToThunkFn.html +1 -1
  221. package/docs/types/TopologicalStatus.html +1 -1
  222. package/docs/types/TreeMultisetNodeNested.html +1 -1
  223. package/docs/types/TreeMultisetOptions.html +1 -1
  224. package/docs/types/TrlAsyncFn.html +1 -1
  225. package/docs/types/TrlFn.html +1 -1
  226. package/docs/types/Turning.html +1 -1
  227. package/docs/types/VertexId.html +1 -1
  228. package/docs/variables/THUNK_SYMBOL.html +1 -1
  229. package/package.json +1 -1
  230. package/.auto-changelog-template.hbs +0 -36
  231. package/rename_clear_files.sh +0 -29
  232. package/src/data-structures/binary-tree/aa-tree.ts +0 -1
  233. package/src/data-structures/binary-tree/abstract-binary-tree.ts +0 -1631
  234. package/src/data-structures/binary-tree/avl-tree.ts +0 -310
  235. package/src/data-structures/binary-tree/b-tree.ts +0 -1
  236. package/src/data-structures/binary-tree/binary-indexed-tree.ts +0 -76
  237. package/src/data-structures/binary-tree/binary-tree.ts +0 -47
  238. package/src/data-structures/binary-tree/bst.ts +0 -537
  239. package/src/data-structures/binary-tree/index.ts +0 -12
  240. package/src/data-structures/binary-tree/rb-tree.ts +0 -101
  241. package/src/data-structures/binary-tree/segment-tree.ts +0 -242
  242. package/src/data-structures/binary-tree/splay-tree.ts +0 -1
  243. package/src/data-structures/binary-tree/tree-multiset.ts +0 -700
  244. package/src/data-structures/binary-tree/two-three-tree.ts +0 -1
  245. package/src/data-structures/diagrams/README.md +0 -5
  246. package/src/data-structures/graph/abstract-graph.ts +0 -1040
  247. package/src/data-structures/graph/directed-graph.ts +0 -470
  248. package/src/data-structures/graph/index.ts +0 -4
  249. package/src/data-structures/graph/map-graph.ts +0 -129
  250. package/src/data-structures/graph/undirected-graph.ts +0 -274
  251. package/src/data-structures/hash/coordinate-map.ts +0 -67
  252. package/src/data-structures/hash/coordinate-set.ts +0 -56
  253. package/src/data-structures/hash/hash-table.ts +0 -1
  254. package/src/data-structures/hash/index.ts +0 -6
  255. package/src/data-structures/hash/pair.ts +0 -1
  256. package/src/data-structures/hash/tree-map.ts +0 -1
  257. package/src/data-structures/hash/tree-set.ts +0 -1
  258. package/src/data-structures/heap/heap.ts +0 -212
  259. package/src/data-structures/heap/index.ts +0 -3
  260. package/src/data-structures/heap/max-heap.ts +0 -31
  261. package/src/data-structures/heap/min-heap.ts +0 -32
  262. package/src/data-structures/index.ts +0 -11
  263. package/src/data-structures/linked-list/doubly-linked-list.ts +0 -573
  264. package/src/data-structures/linked-list/index.ts +0 -3
  265. package/src/data-structures/linked-list/singly-linked-list.ts +0 -501
  266. package/src/data-structures/linked-list/skip-linked-list.ts +0 -1
  267. package/src/data-structures/matrix/index.ts +0 -4
  268. package/src/data-structures/matrix/matrix.ts +0 -27
  269. package/src/data-structures/matrix/matrix2d.ts +0 -212
  270. package/src/data-structures/matrix/navigator.ts +0 -121
  271. package/src/data-structures/matrix/vector2d.ts +0 -316
  272. package/src/data-structures/priority-queue/index.ts +0 -3
  273. package/src/data-structures/priority-queue/max-priority-queue.ts +0 -56
  274. package/src/data-structures/priority-queue/min-priority-queue.ts +0 -57
  275. package/src/data-structures/priority-queue/priority-queue.ts +0 -359
  276. package/src/data-structures/queue/deque.ts +0 -297
  277. package/src/data-structures/queue/index.ts +0 -2
  278. package/src/data-structures/queue/queue.ts +0 -191
  279. package/src/data-structures/stack/index.ts +0 -1
  280. package/src/data-structures/stack/stack.ts +0 -98
  281. package/src/data-structures/tree/index.ts +0 -1
  282. package/src/data-structures/tree/tree.ts +0 -69
  283. package/src/data-structures/trie/index.ts +0 -1
  284. package/src/data-structures/trie/trie.ts +0 -225
  285. package/src/index.ts +0 -4
  286. package/src/interfaces/abstract-binary-tree.ts +0 -191
  287. package/src/interfaces/abstract-graph.ts +0 -31
  288. package/src/interfaces/avl-tree.ts +0 -25
  289. package/src/interfaces/binary-tree.ts +0 -6
  290. package/src/interfaces/bst.ts +0 -31
  291. package/src/interfaces/directed-graph.ts +0 -20
  292. package/src/interfaces/doubly-linked-list.ts +0 -1
  293. package/src/interfaces/heap.ts +0 -1
  294. package/src/interfaces/index.ts +0 -15
  295. package/src/interfaces/navigator.ts +0 -1
  296. package/src/interfaces/priority-queue.ts +0 -1
  297. package/src/interfaces/rb-tree.ts +0 -9
  298. package/src/interfaces/segment-tree.ts +0 -1
  299. package/src/interfaces/singly-linked-list.ts +0 -1
  300. package/src/interfaces/tree-multiset.ts +0 -7
  301. package/src/interfaces/undirected-graph.ts +0 -6
  302. package/src/types/data-structures/abstract-binary-tree.ts +0 -50
  303. package/src/types/data-structures/abstract-graph.ts +0 -11
  304. package/src/types/data-structures/avl-tree.ts +0 -5
  305. package/src/types/data-structures/binary-tree.ts +0 -5
  306. package/src/types/data-structures/bst.ts +0 -13
  307. package/src/types/data-structures/directed-graph.ts +0 -8
  308. package/src/types/data-structures/doubly-linked-list.ts +0 -1
  309. package/src/types/data-structures/heap.ts +0 -5
  310. package/src/types/data-structures/index.ts +0 -15
  311. package/src/types/data-structures/map-graph.ts +0 -1
  312. package/src/types/data-structures/navigator.ts +0 -13
  313. package/src/types/data-structures/priority-queue.ts +0 -9
  314. package/src/types/data-structures/rb-tree.ts +0 -8
  315. package/src/types/data-structures/segment-tree.ts +0 -1
  316. package/src/types/data-structures/singly-linked-list.ts +0 -1
  317. package/src/types/data-structures/tree-multiset.ts +0 -6
  318. package/src/types/helpers.ts +0 -1
  319. package/src/types/index.ts +0 -3
  320. package/src/types/utils/index.ts +0 -2
  321. package/src/types/utils/utils.ts +0 -6
  322. package/src/types/utils/validate-type.ts +0 -35
  323. package/src/utils/index.ts +0 -1
  324. package/src/utils/utils.ts +0 -79
  325. package/tsconfig.build.json +0 -33
@@ -26,7 +26,7 @@
26
26
  <h5><span class="tsd-kind-parameter">fn</span>: <a href="../types/TrlFn.html" class="tsd-signature-type tsd-kind-type-alias">TrlFn</a></h5></li></ul></div>
27
27
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">args</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> &amp; </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">cont</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">args</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><a href="../types/Thunk.html" class="tsd-signature-type tsd-kind-type-alias">Thunk</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h4><aside class="tsd-sources">
28
28
  <ul>
29
- <li>Defined in <a href="https://github.com/zrwusa/data-structure-typed/blob/474f431/src/utils/utils.ts#L47">src/utils/utils.ts:47</a></li></ul></aside></li></ul></section></div>
29
+ <li>Defined in <a href="https://github.com/zrwusa/data-structure-typed/blob/9b5f2b2/src/utils/utils.ts#L47">src/utils/utils.ts:47</a></li></ul></aside></li></ul></section></div>
30
30
  <div class="col-sidebar">
31
31
  <div class="page-menu">
32
32
  <div class="tsd-navigation settings">
@@ -26,7 +26,7 @@
26
26
  <h5><span class="tsd-kind-parameter">fn</span>: <a href="../types/TrlAsyncFn.html" class="tsd-signature-type tsd-kind-type-alias">TrlAsyncFn</a></h5></li></ul></div>
27
27
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">args</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> &amp; </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">cont</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">args</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol"> =&gt; </span><a href="../types/Thunk.html" class="tsd-signature-type tsd-kind-type-alias">Thunk</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h4><aside class="tsd-sources">
28
28
  <ul>
29
- <li>Defined in <a href="https://github.com/zrwusa/data-structure-typed/blob/474f431/src/utils/utils.ts#L64">src/utils/utils.ts:64</a></li></ul></aside></li></ul></section></div>
29
+ <li>Defined in <a href="https://github.com/zrwusa/data-structure-typed/blob/9b5f2b2/src/utils/utils.ts#L64">src/utils/utils.ts:64</a></li></ul></aside></li></ul></section></div>
30
30
  <div class="col-sidebar">
31
31
  <div class="page-menu">
32
32
  <div class="tsd-navigation settings">
@@ -21,7 +21,7 @@
21
21
  <li class="tsd-description">
22
22
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
23
23
  <ul>
24
- <li>Defined in <a href="https://github.com/zrwusa/data-structure-typed/blob/474f431/src/utils/utils.ts#L10">src/utils/utils.ts:10</a></li></ul></aside></li></ul></section></div>
24
+ <li>Defined in <a href="https://github.com/zrwusa/data-structure-typed/blob/9b5f2b2/src/utils/utils.ts#L10">src/utils/utils.ts:10</a></li></ul></aside></li></ul></section></div>
25
25
  <div class="col-sidebar">
26
26
  <div class="page-menu">
27
27
  <div class="tsd-navigation settings">
package/docs/index.html CHANGED
@@ -12,7 +12,7 @@
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">
@@ -22,13 +22,13 @@
22
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
23
  morris, Bellman-Ford Algorithm, Dijkstra&#39;s Algorithm, Floyd-Warshall Algorithm,
24
24
  Tarjan&#39;s Algorithm.</p>
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>
25
+ <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
26
  </code><button>Copy</button></pre>
27
27
  <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
28
  </code><button>Copy</button></pre>
29
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">&lt;</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">&quot;https://cdn.jsdelivr.net/npm/data-structure-typed/umd/bundle.min.js&quot;</span><span class="hl-4">&gt;&lt;/</span><span class="hl-5">script</span><span class="hl-4">&gt;</span>
30
30
  </code><button>Copy</button></pre>
31
- <pre><code class="language-javascript"><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><span class="hl-9">Heap</span><span class="hl-1">, </span><span class="hl-9">MinHeap</span><span class="hl-1">, </span><span class="hl-9">SinglyLinkedList</span><span class="hl-1">, </span><span class="hl-9">Stack</span><span class="hl-1">, </span><span class="hl-9">AVLTreeNode</span><span class="hl-1">, </span><span class="hl-9">BST</span><span class="hl-1">, </span><span class="hl-9">Trie</span><span class="hl-1">, </span><span class="hl-9">DirectedGraph</span><span class="hl-1">, </span><span class="hl-9">DirectedVertex</span><span class="hl-1">, </span><span class="hl-9">TreeMultiset</span><span class="hl-1">} = </span><span class="hl-10">dataStructureTyped</span><span class="hl-1">;</span>
31
+ <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><span class="hl-9">Heap</span><span class="hl-1">, </span><span class="hl-9">MinHeap</span><span class="hl-1">, </span><span class="hl-9">SinglyLinkedList</span><span class="hl-1">, </span><span class="hl-9">Stack</span><span class="hl-1">, </span><span class="hl-9">AVLTreeNode</span><span class="hl-1">, </span><span class="hl-9">BST</span><span class="hl-1">, </span><span class="hl-9">Trie</span><span class="hl-1">, </span><span class="hl-9">DirectedGraph</span><span class="hl-1">, </span><span class="hl-9">DirectedVertex</span><span class="hl-1">, </span><span class="hl-9">TreeMultiset</span><span class="hl-1">} = </span><span class="hl-10">dataStructureTyped</span><span class="hl-1">;</span>
32
32
  </code><button>Copy</button></pre>
33
33
  <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
34
  <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 +40,17 @@ Tarjan&#39;s Algorithm.</p>
40
40
  <a id="md:api-docs-amp-examples" class="tsd-anchor"></a><h2><a href="#md:api-docs-amp-examples">API docs &amp; Examples</a></h2><p><a href="https://data-structure-typed-docs.vercel.app">API Docs</a></p>
41
41
  <p><a href="https://vivid-algorithm.vercel.app">Live Examples</a></p>
42
42
  <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">&#39;data-structure-typed&#39;</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">&lt;</span><span class="hl-14">BSTNode</span><span class="hl-1">&lt;{ </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"> }&gt;&gt;();</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>
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-ts"><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">&#39;data-structure-typed&#39;</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/><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">&lt;</span><span class="hl-14">BSTNode</span><span class="hl-1">&lt;{ </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"> }&gt;&gt;();</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>
44
44
  </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">&#39;data-structure-typed&#39;</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/>
45
+ <a id="md:js" class="tsd-anchor"></a><h4><a href="#md:js">JS</a></h4><pre><code class="language-js"><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">&#39;data-structure-typed&#39;</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><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>
46
46
  </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-typescript"><span class="hl-1"> </span><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">&#39;data-structure-typed&#39;</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">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/>
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-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">&#39;data-structure-typed&#39;</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
48
  </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-javascript"><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-0">require</span><span class="hl-1">(</span><span class="hl-2">&#39;data-structure-typed&#39;</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">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/>
49
+ <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">&#39;data-structure-typed&#39;</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
50
  </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-typescript"><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">&#39;data-structure-typed&#39;</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">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/><span class="hl-1"> </span><br/><span class="hl-1"> </span><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">&#39;A&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;B&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><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">&#39;A&#39;</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><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">&#39;B&#39;</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><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">&#39;C&#39;</span><span class="hl-1">); </span><span class="hl-13">// false</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</span><span class="hl-1">); </span><span class="hl-13">// true</span><br/><span class="hl-1"> </span><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">&#39;B&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;A&#39;</span><span class="hl-1">); </span><span class="hl-13">// false</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</span><span class="hl-1">); </span><span class="hl-13">// false</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><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">&#39;C&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><br/><span class="hl-1"> </span><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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;B&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;C&#39;</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">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">// [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;]</span>
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-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">&#39;data-structure-typed&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;C&#39;</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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</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">&#39;B&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;A&#39;</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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</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">&#39;C&#39;</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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</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">&#39;B&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;C&#39;</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">// [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;]</span>
52
52
  </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-typescript"><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">&#39;data-structure-typed&#39;</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">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-1"> </span><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">&#39;A&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;B&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;C&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;D&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;C&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">&#39;B&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;D&#39;</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">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">&#39;A&#39;</span><span class="hl-1">);</span><br/><span class="hl-1"> </span><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">=&gt;</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">// [&#39;A&#39;, &#39;B&#39;, &#39;D&#39;]</span>
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-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">&#39;data-structure-typed&#39;</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">&#39;A&#39;</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">&#39;B&#39;</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">&#39;C&#39;</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">&#39;D&#39;</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">&#39;C&#39;</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">&#39;A&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;B&#39;</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">&#39;B&#39;</span><span class="hl-1">, </span><span class="hl-2">&#39;D&#39;</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">&#39;A&#39;</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">=&gt;</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">// [&#39;A&#39;, &#39;B&#39;, &#39;D&#39;]</span>
54
54
  </code><button>Copy</button></pre>
55
55
  <a id="md:data-structures" class="tsd-anchor"></a><h2><a href="#md:data-structures">Data Structures</a></h2><table>
56
56
  <thead>
@@ -175,7 +175,6 @@ Tarjan&#39;s Algorithm.</p>
175
175
  <td><a href="https://data-structure-typed-docs.vercel.app/classes/Stack.html"><span>Stack</span></a></td>
176
176
  <td><img src="https://raw.githubusercontent.com/zrwusa/assets/master/images/data-structure-typed/assets/tick.svg" alt=""></td>
177
177
  </tr>
178
-
179
178
  <tr>
180
179
  <td>Coordinate Set</td>
181
180
  <td></td>
@@ -482,11 +481,7 @@ Tarjan&#39;s Algorithm.</p>
482
481
  <td>k - length of longest key</td>
483
482
  </tr>
484
483
  </tbody>
485
- </table>
486
-
487
- <p><img src="https://github.com/zrwusa/assets/blob/master/images/data-structure-typed/assets/complexities-diff.jpg?raw=true" alt="complexities"></p>
488
- <p><img src="https://github.com/zrwusa/assets/blob/master/images/data-structure-typed/assets/data-structure-complexities.jpg?raw=true" alt="complexities of data structures"></p>
489
- </div></div>
484
+ </table></div></div>
490
485
  <div class="col-sidebar">
491
486
  <div class="page-menu">
492
487
  <div class="tsd-navigation settings">
@@ -508,11 +503,12 @@ Tarjan&#39;s Algorithm.</p>
508
503
  <ul>
509
504
  <li>
510
505
  <ul>
511
- <li><a href="#md:brief"><span>Brief</span></a></li>
506
+ <li><a href="#md:data-structure-typed"><span>Data <wbr/>Structure <wbr/>Typed</span></a></li>
512
507
  <li>
513
508
  <ul>
509
+ <li><a href="#md:brief"><span>Brief</span></a></li>
514
510
  <li><a href="#md:built-in-classic-algorithms"><span>Built-<wbr/>in classic algorithms</span></a></li>
515
- <li><a href="#md:install"><span>install</span></a></li>
511
+ <li><a href="#md:installation-and-usage"><span>Installation and <wbr/>Usage</span></a></li>
516
512
  <li>
517
513
  <ul>
518
514
  <li><a href="#md:npm"><span>npm</span></a></li>