data-structure-typed 1.40.0-rc → 1.41.0

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 (1066) hide show
  1. package/.eslintrc.js +7 -5
  2. package/.github/workflows/ci.yml +2 -20
  3. package/.travis.yml +3 -4
  4. package/CHANGELOG.md +23 -1
  5. package/CONTRIBUTING.md +13 -0
  6. package/README.md +20 -11
  7. package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +106 -0
  8. package/dist/cjs/data-structures/binary-tree/avl-tree.js +348 -0
  9. package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -0
  10. package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.d.ts +149 -0
  11. package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.js +270 -0
  12. package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.js.map +1 -0
  13. package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +363 -0
  14. package/dist/cjs/data-structures/binary-tree/binary-tree.js +1136 -0
  15. package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -0
  16. package/dist/cjs/data-structures/binary-tree/bst.d.ts +167 -0
  17. package/dist/cjs/data-structures/binary-tree/bst.js +513 -0
  18. package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -0
  19. package/dist/cjs/data-structures/binary-tree/index.d.ts +7 -0
  20. package/dist/cjs/data-structures/binary-tree/index.js +24 -0
  21. package/dist/cjs/data-structures/binary-tree/index.js.map +1 -0
  22. package/dist/cjs/data-structures/binary-tree/rb-tree.d.ts +97 -0
  23. package/dist/cjs/data-structures/binary-tree/rb-tree.js +389 -0
  24. package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -0
  25. package/dist/cjs/data-structures/binary-tree/segment-tree.d.ts +67 -0
  26. package/dist/cjs/data-structures/binary-tree/segment-tree.js +181 -0
  27. package/dist/cjs/data-structures/binary-tree/segment-tree.js.map +1 -0
  28. package/dist/cjs/data-structures/binary-tree/tree-multiset.d.ts +126 -0
  29. package/dist/cjs/data-structures/binary-tree/tree-multiset.js +356 -0
  30. package/dist/cjs/data-structures/binary-tree/tree-multiset.js.map +1 -0
  31. package/dist/cjs/data-structures/graph/abstract-graph.d.ts +313 -0
  32. package/dist/cjs/data-structures/graph/abstract-graph.js +885 -0
  33. package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -0
  34. package/dist/cjs/data-structures/graph/directed-graph.d.ts +194 -0
  35. package/dist/cjs/data-structures/graph/directed-graph.js +405 -0
  36. package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -0
  37. package/dist/cjs/data-structures/graph/index.js.map +1 -0
  38. package/dist/cjs/data-structures/graph/map-graph.d.ts +73 -0
  39. package/dist/cjs/data-structures/graph/map-graph.js +94 -0
  40. package/dist/cjs/data-structures/graph/map-graph.js.map +1 -0
  41. package/dist/cjs/data-structures/graph/undirected-graph.d.ts +120 -0
  42. package/dist/cjs/data-structures/graph/undirected-graph.js +240 -0
  43. package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -0
  44. package/dist/cjs/data-structures/hash/coordinate-map.d.ts +44 -0
  45. package/dist/cjs/data-structures/hash/coordinate-map.js +63 -0
  46. package/dist/cjs/data-structures/hash/coordinate-map.js.map +1 -0
  47. package/dist/cjs/data-structures/hash/coordinate-set.d.ts +36 -0
  48. package/dist/cjs/data-structures/hash/coordinate-set.js +53 -0
  49. package/dist/cjs/data-structures/hash/coordinate-set.js.map +1 -0
  50. package/dist/cjs/data-structures/hash/hash-map.d.ts +50 -0
  51. package/dist/cjs/data-structures/hash/hash-map.js +154 -0
  52. package/dist/cjs/data-structures/hash/hash-map.js.map +1 -0
  53. package/dist/cjs/data-structures/hash/hash-table.d.ts +103 -0
  54. package/dist/cjs/data-structures/hash/hash-table.js +237 -0
  55. package/dist/cjs/data-structures/hash/hash-table.js.map +1 -0
  56. package/dist/cjs/data-structures/hash/index.d.ts +6 -0
  57. package/dist/cjs/data-structures/hash/index.js +23 -0
  58. package/dist/cjs/data-structures/hash/index.js.map +1 -0
  59. package/dist/cjs/data-structures/hash/tree-map.js.map +1 -0
  60. package/dist/cjs/data-structures/hash/tree-set.js.map +1 -0
  61. package/dist/cjs/data-structures/heap/heap.d.ts +235 -0
  62. package/dist/cjs/data-structures/heap/heap.js +516 -0
  63. package/dist/cjs/data-structures/heap/heap.js.map +1 -0
  64. package/dist/cjs/data-structures/heap/index.js.map +1 -0
  65. package/dist/cjs/data-structures/heap/max-heap.d.ts +15 -0
  66. package/dist/cjs/data-structures/heap/max-heap.js +27 -0
  67. package/dist/cjs/data-structures/heap/max-heap.js.map +1 -0
  68. package/dist/cjs/data-structures/heap/min-heap.d.ts +15 -0
  69. package/dist/cjs/data-structures/heap/min-heap.js +27 -0
  70. package/dist/cjs/data-structures/heap/min-heap.js.map +1 -0
  71. package/dist/cjs/data-structures/index.js.map +1 -0
  72. package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +253 -0
  73. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +570 -0
  74. package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -0
  75. package/dist/cjs/data-structures/linked-list/index.js.map +1 -0
  76. package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +232 -0
  77. package/dist/cjs/data-structures/linked-list/singly-linked-list.js +534 -0
  78. package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -0
  79. package/dist/cjs/data-structures/linked-list/skip-linked-list.d.ts +80 -0
  80. package/dist/cjs/data-structures/linked-list/skip-linked-list.js +188 -0
  81. package/dist/cjs/data-structures/linked-list/skip-linked-list.js.map +1 -0
  82. package/dist/cjs/data-structures/matrix/index.js.map +1 -0
  83. package/dist/cjs/data-structures/matrix/matrix.d.ts +21 -0
  84. package/dist/cjs/data-structures/matrix/matrix.js.map +1 -0
  85. package/dist/cjs/data-structures/matrix/matrix2d.d.ts +107 -0
  86. package/dist/cjs/data-structures/matrix/matrix2d.js +200 -0
  87. package/dist/cjs/data-structures/matrix/matrix2d.js.map +1 -0
  88. package/dist/cjs/data-structures/matrix/navigator.d.ts +52 -0
  89. package/dist/cjs/data-structures/matrix/navigator.js.map +1 -0
  90. package/dist/cjs/data-structures/matrix/vector2d.d.ts +200 -0
  91. package/dist/cjs/data-structures/matrix/vector2d.js +291 -0
  92. package/dist/cjs/data-structures/matrix/vector2d.js.map +1 -0
  93. package/dist/cjs/data-structures/priority-queue/index.js.map +1 -0
  94. package/dist/cjs/data-structures/priority-queue/max-priority-queue.d.ts +15 -0
  95. package/dist/cjs/data-structures/priority-queue/max-priority-queue.js +27 -0
  96. package/dist/cjs/data-structures/priority-queue/max-priority-queue.js.map +1 -0
  97. package/dist/cjs/data-structures/priority-queue/min-priority-queue.d.ts +15 -0
  98. package/dist/cjs/data-structures/priority-queue/min-priority-queue.js +27 -0
  99. package/dist/cjs/data-structures/priority-queue/min-priority-queue.js.map +1 -0
  100. package/dist/cjs/data-structures/priority-queue/priority-queue.d.ts +15 -0
  101. package/dist/cjs/data-structures/priority-queue/priority-queue.js +18 -0
  102. package/dist/cjs/data-structures/priority-queue/priority-queue.js.map +1 -0
  103. package/dist/cjs/data-structures/queue/deque.d.ts +161 -0
  104. package/dist/cjs/data-structures/queue/deque.js +265 -0
  105. package/dist/cjs/data-structures/queue/deque.js.map +1 -0
  106. package/dist/cjs/data-structures/queue/index.js.map +1 -0
  107. package/dist/cjs/data-structures/queue/queue.d.ts +122 -0
  108. package/dist/cjs/data-structures/queue/queue.js +188 -0
  109. package/dist/cjs/data-structures/queue/queue.js.map +1 -0
  110. package/dist/cjs/data-structures/stack/index.js.map +1 -0
  111. package/dist/cjs/data-structures/stack/stack.d.ts +64 -0
  112. package/dist/cjs/data-structures/stack/stack.js +95 -0
  113. package/dist/cjs/data-structures/stack/stack.js.map +1 -0
  114. package/dist/cjs/data-structures/tree/index.js.map +1 -0
  115. package/dist/cjs/data-structures/tree/tree.d.ts +8 -0
  116. package/dist/cjs/data-structures/tree/tree.js +41 -0
  117. package/dist/cjs/data-structures/tree/tree.js.map +1 -0
  118. package/dist/cjs/data-structures/trie/index.js.map +1 -0
  119. package/dist/cjs/data-structures/trie/trie.d.ts +79 -0
  120. package/dist/cjs/data-structures/trie/trie.js +252 -0
  121. package/dist/cjs/data-structures/trie/trie.js.map +1 -0
  122. package/dist/cjs/index.js.map +1 -0
  123. package/dist/cjs/interfaces/binary-tree.d.ts +7 -0
  124. package/dist/cjs/interfaces/binary-tree.js.map +1 -0
  125. package/dist/cjs/interfaces/doubly-linked-list.js.map +1 -0
  126. package/dist/cjs/interfaces/graph.d.ts +5 -0
  127. package/dist/cjs/interfaces/graph.js +3 -0
  128. package/dist/cjs/interfaces/graph.js.map +1 -0
  129. package/dist/cjs/interfaces/heap.js.map +1 -0
  130. package/dist/cjs/interfaces/index.d.ts +8 -0
  131. package/dist/cjs/interfaces/index.js +25 -0
  132. package/dist/cjs/interfaces/index.js.map +1 -0
  133. package/dist/cjs/interfaces/navigator.js.map +1 -0
  134. package/dist/cjs/interfaces/priority-queue.js.map +1 -0
  135. package/dist/cjs/interfaces/segment-tree.js.map +1 -0
  136. package/dist/cjs/interfaces/singly-linked-list.js.map +1 -0
  137. package/dist/cjs/types/data-structures/binary-tree/avl-tree.d.ts +4 -0
  138. package/dist/cjs/types/data-structures/binary-tree/avl-tree.js.map +1 -0
  139. package/dist/cjs/types/data-structures/binary-tree/binary-indexed-tree.js +3 -0
  140. package/dist/cjs/types/data-structures/binary-tree/binary-indexed-tree.js.map +1 -0
  141. package/dist/cjs/types/data-structures/binary-tree/binary-tree.d.ts +29 -0
  142. package/dist/cjs/types/data-structures/binary-tree/binary-tree.js +25 -0
  143. package/dist/cjs/types/data-structures/binary-tree/binary-tree.js.map +1 -0
  144. package/dist/cjs/types/data-structures/binary-tree/bst.d.ts +7 -0
  145. package/dist/cjs/types/data-structures/binary-tree/bst.js.map +1 -0
  146. package/dist/cjs/types/data-structures/binary-tree/index.d.ts +6 -0
  147. package/dist/cjs/types/data-structures/binary-tree/index.js +23 -0
  148. package/dist/cjs/types/data-structures/binary-tree/index.js.map +1 -0
  149. package/dist/cjs/types/data-structures/binary-tree/rb-tree.d.ts +4 -0
  150. package/dist/cjs/types/data-structures/binary-tree/rb-tree.js +14 -0
  151. package/dist/cjs/types/data-structures/binary-tree/rb-tree.js.map +1 -0
  152. package/dist/cjs/types/data-structures/binary-tree/segment-tree.js.map +1 -0
  153. package/dist/cjs/types/data-structures/binary-tree/tree-multiset.d.ts +4 -0
  154. package/dist/cjs/types/data-structures/binary-tree/tree-multiset.js.map +1 -0
  155. package/dist/cjs/types/data-structures/graph/abstract-graph.d.ts +10 -0
  156. package/dist/cjs/types/data-structures/graph/abstract-graph.js.map +1 -0
  157. package/dist/cjs/types/data-structures/graph/directed-graph.js.map +1 -0
  158. package/dist/cjs/types/data-structures/graph/index.d.ts +3 -0
  159. package/dist/cjs/types/data-structures/graph/index.js +20 -0
  160. package/dist/cjs/types/data-structures/graph/index.js.map +1 -0
  161. package/dist/cjs/types/data-structures/graph/map-graph.js.map +1 -0
  162. package/dist/cjs/types/data-structures/graph/undirected-graph.js.map +1 -0
  163. package/dist/cjs/types/data-structures/hash/coordinate-map.js +3 -0
  164. package/dist/cjs/types/data-structures/hash/coordinate-map.js.map +1 -0
  165. package/dist/cjs/types/data-structures/hash/coordinate-set.js +3 -0
  166. package/dist/cjs/types/data-structures/hash/coordinate-set.js.map +1 -0
  167. package/dist/cjs/types/data-structures/hash/hash-map.js +3 -0
  168. package/dist/cjs/types/data-structures/hash/hash-map.js.map +1 -0
  169. package/dist/cjs/types/data-structures/hash/hash-table.js +3 -0
  170. package/dist/cjs/types/data-structures/hash/hash-table.js.map +1 -0
  171. package/dist/cjs/types/data-structures/hash/index.js +3 -0
  172. package/dist/cjs/types/data-structures/hash/index.js.map +1 -0
  173. package/dist/cjs/types/data-structures/hash/tree-map.js +3 -0
  174. package/dist/cjs/types/data-structures/hash/tree-map.js.map +1 -0
  175. package/dist/cjs/types/data-structures/hash/tree-set.js +3 -0
  176. package/dist/cjs/types/data-structures/hash/tree-set.js.map +1 -0
  177. package/dist/cjs/types/data-structures/heap/heap.js.map +1 -0
  178. package/dist/cjs/types/data-structures/heap/index.d.ts +1 -0
  179. package/dist/cjs/types/data-structures/heap/index.js +18 -0
  180. package/dist/cjs/types/data-structures/heap/index.js.map +1 -0
  181. package/dist/cjs/types/data-structures/heap/max-heap.js +3 -0
  182. package/dist/cjs/types/data-structures/heap/max-heap.js.map +1 -0
  183. package/dist/cjs/types/data-structures/heap/min-heap.js +3 -0
  184. package/dist/cjs/types/data-structures/heap/min-heap.js.map +1 -0
  185. package/dist/cjs/types/data-structures/index.d.ts +11 -0
  186. package/dist/cjs/types/data-structures/index.js +28 -0
  187. package/dist/cjs/types/data-structures/index.js.map +1 -0
  188. package/dist/cjs/types/data-structures/linked-list/doubly-linked-list.js.map +1 -0
  189. package/dist/cjs/types/data-structures/linked-list/index.d.ts +2 -0
  190. package/dist/cjs/types/data-structures/linked-list/index.js +19 -0
  191. package/dist/cjs/types/data-structures/linked-list/index.js.map +1 -0
  192. package/dist/cjs/types/data-structures/linked-list/singly-linked-list.js.map +1 -0
  193. package/dist/cjs/types/data-structures/linked-list/skip-linked-list.js +3 -0
  194. package/dist/cjs/types/data-structures/linked-list/skip-linked-list.js.map +1 -0
  195. package/dist/cjs/types/data-structures/matrix/index.d.ts +1 -0
  196. package/dist/cjs/types/data-structures/matrix/index.js +18 -0
  197. package/dist/cjs/types/data-structures/matrix/index.js.map +1 -0
  198. package/dist/cjs/types/data-structures/matrix/matrix.js +3 -0
  199. package/dist/cjs/types/data-structures/matrix/matrix.js.map +1 -0
  200. package/dist/cjs/types/data-structures/matrix/matrix2d.js +3 -0
  201. package/dist/cjs/types/data-structures/matrix/matrix2d.js.map +1 -0
  202. package/dist/cjs/types/data-structures/matrix/navigator.js.map +1 -0
  203. package/dist/cjs/types/data-structures/matrix/vector2d.js +3 -0
  204. package/dist/cjs/types/data-structures/matrix/vector2d.js.map +1 -0
  205. package/dist/cjs/types/data-structures/priority-queue/index.js +20 -0
  206. package/dist/cjs/types/data-structures/priority-queue/index.js.map +1 -0
  207. package/dist/cjs/types/data-structures/priority-queue/max-priority-queue.js +3 -0
  208. package/dist/cjs/types/data-structures/priority-queue/max-priority-queue.js.map +1 -0
  209. package/dist/cjs/types/data-structures/priority-queue/min-priority-queue.js +3 -0
  210. package/dist/cjs/types/data-structures/priority-queue/min-priority-queue.js.map +1 -0
  211. package/dist/cjs/types/data-structures/priority-queue/priority-queue.js.map +1 -0
  212. package/dist/cjs/types/data-structures/queue/deque.js +3 -0
  213. package/dist/cjs/types/data-structures/queue/deque.js.map +1 -0
  214. package/dist/cjs/types/data-structures/queue/index.js +19 -0
  215. package/dist/cjs/types/data-structures/queue/index.js.map +1 -0
  216. package/dist/cjs/types/data-structures/queue/queue.js +3 -0
  217. package/dist/cjs/types/data-structures/queue/queue.js.map +1 -0
  218. package/dist/cjs/types/data-structures/stack/index.js +18 -0
  219. package/dist/cjs/types/data-structures/stack/index.js.map +1 -0
  220. package/dist/cjs/types/data-structures/stack/stack.js +3 -0
  221. package/dist/cjs/types/data-structures/stack/stack.js.map +1 -0
  222. package/dist/cjs/types/data-structures/tree/index.js +18 -0
  223. package/dist/cjs/types/data-structures/tree/index.js.map +1 -0
  224. package/dist/cjs/types/data-structures/tree/tree.js +3 -0
  225. package/dist/cjs/types/data-structures/tree/tree.js.map +1 -0
  226. package/dist/cjs/types/data-structures/trie/index.js +18 -0
  227. package/dist/cjs/types/data-structures/trie/index.js.map +1 -0
  228. package/dist/cjs/types/data-structures/trie/trie.js +3 -0
  229. package/dist/cjs/types/data-structures/trie/trie.js.map +1 -0
  230. package/dist/cjs/types/helpers.d.ts +8 -0
  231. package/dist/cjs/types/helpers.js +10 -0
  232. package/dist/cjs/types/helpers.js.map +1 -0
  233. package/dist/cjs/types/index.js.map +1 -0
  234. package/dist/cjs/types/utils/index.js.map +1 -0
  235. package/dist/cjs/types/utils/utils.js.map +1 -0
  236. package/dist/cjs/types/utils/validate-type.js.map +1 -0
  237. package/dist/cjs/utils/index.js.map +1 -0
  238. package/dist/cjs/utils/utils.d.ts +20 -0
  239. package/dist/cjs/utils/utils.js +74 -0
  240. package/dist/cjs/utils/utils.js.map +1 -0
  241. package/dist/mjs/data-structures/binary-tree/avl-tree.d.ts +106 -0
  242. package/dist/mjs/data-structures/binary-tree/avl-tree.js +348 -0
  243. package/dist/mjs/data-structures/binary-tree/binary-indexed-tree.d.ts +149 -0
  244. package/dist/mjs/data-structures/binary-tree/binary-indexed-tree.js +274 -0
  245. package/dist/mjs/data-structures/binary-tree/binary-tree.d.ts +363 -0
  246. package/dist/mjs/data-structures/binary-tree/binary-tree.js +1147 -0
  247. package/dist/mjs/data-structures/binary-tree/bst.d.ts +167 -0
  248. package/dist/mjs/data-structures/binary-tree/bst.js +509 -0
  249. package/dist/mjs/data-structures/binary-tree/index.d.ts +7 -0
  250. package/dist/mjs/data-structures/binary-tree/index.js +23 -0
  251. package/dist/mjs/data-structures/binary-tree/rb-tree.d.ts +97 -0
  252. package/dist/mjs/data-structures/binary-tree/rb-tree.js +393 -0
  253. package/dist/mjs/data-structures/binary-tree/segment-tree.d.ts +67 -0
  254. package/dist/mjs/data-structures/binary-tree/segment-tree.js +182 -0
  255. package/dist/mjs/data-structures/binary-tree/tree-multiset.d.ts +126 -0
  256. package/dist/mjs/data-structures/binary-tree/tree-multiset.js +356 -0
  257. package/dist/mjs/data-structures/graph/abstract-graph.d.ts +313 -0
  258. package/dist/mjs/data-structures/graph/abstract-graph.js +883 -0
  259. package/dist/mjs/data-structures/graph/directed-graph.d.ts +194 -0
  260. package/dist/mjs/data-structures/graph/directed-graph.js +406 -0
  261. package/dist/mjs/data-structures/graph/index.js +20 -0
  262. package/dist/mjs/data-structures/graph/map-graph.d.ts +73 -0
  263. package/dist/mjs/data-structures/graph/map-graph.js +96 -0
  264. package/dist/mjs/data-structures/graph/undirected-graph.d.ts +120 -0
  265. package/dist/mjs/data-structures/graph/undirected-graph.js +239 -0
  266. package/dist/mjs/data-structures/hash/coordinate-map.d.ts +44 -0
  267. package/dist/mjs/data-structures/hash/coordinate-map.js +62 -0
  268. package/dist/mjs/data-structures/hash/coordinate-set.d.ts +36 -0
  269. package/dist/mjs/data-structures/hash/coordinate-set.js +52 -0
  270. package/dist/mjs/data-structures/hash/hash-map.d.ts +50 -0
  271. package/dist/mjs/data-structures/hash/hash-map.js +159 -0
  272. package/dist/mjs/data-structures/hash/hash-table.d.ts +103 -0
  273. package/dist/mjs/data-structures/hash/hash-table.js +243 -0
  274. package/dist/mjs/data-structures/hash/index.d.ts +6 -0
  275. package/dist/mjs/data-structures/hash/index.js +22 -0
  276. package/dist/mjs/data-structures/hash/tree-map.js +6 -0
  277. package/dist/mjs/data-structures/hash/tree-set.js +6 -0
  278. package/dist/mjs/data-structures/heap/heap.d.ts +235 -0
  279. package/dist/mjs/data-structures/heap/heap.js +525 -0
  280. package/dist/mjs/data-structures/heap/index.js +19 -0
  281. package/dist/mjs/data-structures/heap/max-heap.d.ts +15 -0
  282. package/dist/mjs/data-structures/heap/max-heap.js +26 -0
  283. package/dist/mjs/data-structures/heap/min-heap.d.ts +15 -0
  284. package/dist/mjs/data-structures/heap/min-heap.js +26 -0
  285. package/dist/mjs/data-structures/index.js +27 -0
  286. package/dist/mjs/data-structures/linked-list/doubly-linked-list.d.ts +253 -0
  287. package/dist/mjs/data-structures/linked-list/doubly-linked-list.js +573 -0
  288. package/dist/mjs/data-structures/linked-list/index.js +19 -0
  289. package/dist/mjs/data-structures/linked-list/singly-linked-list.d.ts +232 -0
  290. package/dist/mjs/data-structures/linked-list/singly-linked-list.js +538 -0
  291. package/dist/mjs/data-structures/linked-list/skip-linked-list.d.ts +80 -0
  292. package/dist/mjs/data-structures/linked-list/skip-linked-list.js +194 -0
  293. package/dist/mjs/data-structures/matrix/index.js +20 -0
  294. package/dist/mjs/data-structures/matrix/matrix.d.ts +21 -0
  295. package/dist/mjs/data-structures/matrix/matrix.js +29 -0
  296. package/dist/mjs/data-structures/matrix/matrix2d.d.ts +107 -0
  297. package/dist/mjs/data-structures/matrix/matrix2d.js +200 -0
  298. package/dist/mjs/data-structures/matrix/navigator.d.ts +52 -0
  299. package/dist/mjs/data-structures/matrix/navigator.js +113 -0
  300. package/dist/mjs/data-structures/matrix/vector2d.d.ts +200 -0
  301. package/dist/mjs/data-structures/matrix/vector2d.js +293 -0
  302. package/dist/mjs/data-structures/priority-queue/index.js +19 -0
  303. package/dist/mjs/data-structures/priority-queue/max-priority-queue.d.ts +15 -0
  304. package/dist/mjs/data-structures/priority-queue/max-priority-queue.js +26 -0
  305. package/dist/mjs/data-structures/priority-queue/min-priority-queue.d.ts +15 -0
  306. package/dist/mjs/data-structures/priority-queue/min-priority-queue.js +26 -0
  307. package/dist/mjs/data-structures/priority-queue/priority-queue.d.ts +15 -0
  308. package/dist/mjs/data-structures/priority-queue/priority-queue.js +17 -0
  309. package/dist/mjs/data-structures/queue/deque.d.ts +161 -0
  310. package/dist/mjs/data-structures/queue/deque.js +257 -0
  311. package/dist/mjs/data-structures/queue/index.js +18 -0
  312. package/dist/mjs/data-structures/queue/queue.d.ts +122 -0
  313. package/dist/mjs/data-structures/queue/queue.js +188 -0
  314. package/dist/mjs/data-structures/stack/index.js +17 -0
  315. package/dist/mjs/data-structures/stack/stack.d.ts +64 -0
  316. package/dist/mjs/data-structures/stack/stack.js +95 -0
  317. package/dist/mjs/data-structures/tree/index.js +17 -0
  318. package/dist/mjs/data-structures/tree/tree.d.ts +8 -0
  319. package/dist/mjs/data-structures/tree/tree.js +43 -0
  320. package/dist/mjs/data-structures/trie/index.js +17 -0
  321. package/dist/mjs/data-structures/trie/trie.d.ts +79 -0
  322. package/dist/mjs/data-structures/trie/trie.js +256 -0
  323. package/dist/mjs/index.js +20 -0
  324. package/dist/mjs/interfaces/binary-tree.d.ts +7 -0
  325. package/dist/mjs/interfaces/binary-tree.js +2 -0
  326. package/dist/mjs/interfaces/doubly-linked-list.js +2 -0
  327. package/dist/mjs/interfaces/graph.d.ts +5 -0
  328. package/dist/mjs/interfaces/graph.js +2 -0
  329. package/dist/mjs/interfaces/heap.js +2 -0
  330. package/dist/mjs/interfaces/index.d.ts +8 -0
  331. package/dist/mjs/interfaces/index.js +24 -0
  332. package/dist/mjs/interfaces/navigator.js +2 -0
  333. package/dist/mjs/interfaces/priority-queue.js +2 -0
  334. package/dist/mjs/interfaces/segment-tree.js +2 -0
  335. package/dist/mjs/interfaces/singly-linked-list.js +2 -0
  336. package/dist/mjs/types/data-structures/binary-tree/avl-tree.d.ts +4 -0
  337. package/dist/mjs/types/data-structures/binary-tree/avl-tree.js +2 -0
  338. package/dist/mjs/types/data-structures/binary-tree/binary-indexed-tree.js +2 -0
  339. package/dist/mjs/types/data-structures/binary-tree/binary-tree.d.ts +29 -0
  340. package/dist/mjs/types/data-structures/binary-tree/binary-tree.js +24 -0
  341. package/dist/mjs/types/data-structures/binary-tree/bst.d.ts +7 -0
  342. package/dist/mjs/types/data-structures/binary-tree/bst.js +2 -0
  343. package/dist/mjs/types/data-structures/binary-tree/index.d.ts +6 -0
  344. package/dist/mjs/types/data-structures/binary-tree/index.js +22 -0
  345. package/dist/mjs/types/data-structures/binary-tree/rb-tree.d.ts +4 -0
  346. package/dist/mjs/types/data-structures/binary-tree/rb-tree.js +13 -0
  347. package/dist/mjs/types/data-structures/binary-tree/segment-tree.js +2 -0
  348. package/dist/mjs/types/data-structures/binary-tree/tree-multiset.d.ts +4 -0
  349. package/dist/mjs/types/data-structures/binary-tree/tree-multiset.js +2 -0
  350. package/dist/mjs/types/data-structures/graph/abstract-graph.d.ts +10 -0
  351. package/dist/mjs/types/data-structures/graph/abstract-graph.js +2 -0
  352. package/dist/mjs/types/data-structures/graph/directed-graph.js +9 -0
  353. package/dist/mjs/types/data-structures/graph/index.d.ts +3 -0
  354. package/dist/mjs/types/data-structures/graph/index.js +19 -0
  355. package/dist/mjs/types/data-structures/graph/map-graph.js +2 -0
  356. package/dist/mjs/types/data-structures/graph/undirected-graph.js +2 -0
  357. package/dist/mjs/types/data-structures/hash/coordinate-map.js +2 -0
  358. package/dist/mjs/types/data-structures/hash/coordinate-set.js +2 -0
  359. package/dist/mjs/types/data-structures/hash/hash-map.js +2 -0
  360. package/dist/mjs/types/data-structures/hash/hash-table.js +2 -0
  361. package/dist/mjs/types/data-structures/hash/index.js +2 -0
  362. package/dist/mjs/types/data-structures/hash/tree-map.js +2 -0
  363. package/dist/mjs/types/data-structures/hash/tree-set.js +2 -0
  364. package/dist/mjs/types/data-structures/heap/heap.js +2 -0
  365. package/dist/mjs/types/data-structures/heap/index.d.ts +1 -0
  366. package/dist/mjs/types/data-structures/heap/index.js +17 -0
  367. package/dist/mjs/types/data-structures/heap/max-heap.js +2 -0
  368. package/dist/mjs/types/data-structures/heap/min-heap.js +2 -0
  369. package/dist/mjs/types/data-structures/index.d.ts +11 -0
  370. package/dist/mjs/types/data-structures/index.js +27 -0
  371. package/dist/mjs/types/data-structures/linked-list/doubly-linked-list.js +2 -0
  372. package/dist/mjs/types/data-structures/linked-list/index.d.ts +2 -0
  373. package/dist/mjs/types/data-structures/linked-list/index.js +18 -0
  374. package/dist/mjs/types/data-structures/linked-list/singly-linked-list.js +2 -0
  375. package/dist/mjs/types/data-structures/linked-list/skip-linked-list.d.ts +1 -0
  376. package/dist/mjs/types/data-structures/linked-list/skip-linked-list.js +2 -0
  377. package/dist/mjs/types/data-structures/matrix/index.d.ts +1 -0
  378. package/dist/mjs/types/data-structures/matrix/index.js +17 -0
  379. package/dist/mjs/types/data-structures/matrix/matrix.d.ts +1 -0
  380. package/dist/mjs/types/data-structures/matrix/matrix.js +2 -0
  381. package/dist/mjs/types/data-structures/matrix/matrix2d.d.ts +1 -0
  382. package/dist/mjs/types/data-structures/matrix/matrix2d.js +2 -0
  383. package/dist/mjs/types/data-structures/matrix/navigator.js +2 -0
  384. package/dist/mjs/types/data-structures/matrix/vector2d.d.ts +1 -0
  385. package/dist/mjs/types/data-structures/matrix/vector2d.js +2 -0
  386. package/dist/mjs/types/data-structures/priority-queue/index.d.ts +3 -0
  387. package/dist/mjs/types/data-structures/priority-queue/index.js +19 -0
  388. package/dist/mjs/types/data-structures/priority-queue/max-priority-queue.d.ts +1 -0
  389. package/dist/mjs/types/data-structures/priority-queue/max-priority-queue.js +2 -0
  390. package/dist/mjs/types/data-structures/priority-queue/min-priority-queue.d.ts +1 -0
  391. package/dist/mjs/types/data-structures/priority-queue/min-priority-queue.js +2 -0
  392. package/dist/mjs/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  393. package/dist/mjs/types/data-structures/priority-queue/priority-queue.js +2 -0
  394. package/dist/mjs/types/data-structures/queue/deque.d.ts +1 -0
  395. package/dist/mjs/types/data-structures/queue/deque.js +2 -0
  396. package/dist/mjs/types/data-structures/queue/index.d.ts +2 -0
  397. package/dist/mjs/types/data-structures/queue/index.js +18 -0
  398. package/dist/mjs/types/data-structures/queue/queue.d.ts +1 -0
  399. package/dist/mjs/types/data-structures/queue/queue.js +2 -0
  400. package/dist/mjs/types/data-structures/stack/index.d.ts +1 -0
  401. package/dist/mjs/types/data-structures/stack/index.js +17 -0
  402. package/dist/mjs/types/data-structures/stack/stack.d.ts +1 -0
  403. package/dist/mjs/types/data-structures/stack/stack.js +2 -0
  404. package/dist/mjs/types/data-structures/tree/index.d.ts +1 -0
  405. package/dist/mjs/types/data-structures/tree/index.js +17 -0
  406. package/dist/mjs/types/data-structures/tree/tree.d.ts +1 -0
  407. package/dist/mjs/types/data-structures/tree/tree.js +2 -0
  408. package/dist/mjs/types/data-structures/trie/index.d.ts +1 -0
  409. package/dist/mjs/types/data-structures/trie/index.js +17 -0
  410. package/dist/mjs/types/data-structures/trie/trie.d.ts +1 -0
  411. package/dist/mjs/types/data-structures/trie/trie.js +2 -0
  412. package/dist/mjs/types/helpers.d.ts +8 -0
  413. package/dist/mjs/types/helpers.js +9 -0
  414. package/dist/mjs/types/index.js +19 -0
  415. package/dist/mjs/types/utils/index.js +18 -0
  416. package/dist/mjs/types/utils/utils.js +2 -0
  417. package/dist/mjs/types/utils/validate-type.js +2 -0
  418. package/dist/mjs/utils/index.js +17 -0
  419. package/dist/mjs/utils/utils.d.ts +20 -0
  420. package/dist/mjs/utils/utils.js +64 -0
  421. package/dist/umd/data-structure-typed.min.js +27 -0
  422. package/dist/umd/data-structure-typed.min.js.map +1 -0
  423. package/package.json +28 -22
  424. package/src/data-structures/binary-tree/avl-tree.ts +88 -74
  425. package/src/data-structures/binary-tree/binary-indexed-tree.ts +265 -35
  426. package/src/data-structures/binary-tree/binary-tree.ts +1263 -26
  427. package/src/data-structures/binary-tree/bst.ts +217 -237
  428. package/src/data-structures/binary-tree/index.ts +0 -5
  429. package/src/data-structures/binary-tree/rb-tree.ts +416 -356
  430. package/src/data-structures/binary-tree/segment-tree.ts +25 -92
  431. package/src/data-structures/binary-tree/tree-multiset.ts +113 -422
  432. package/src/data-structures/graph/abstract-graph.ts +169 -214
  433. package/src/data-structures/graph/directed-graph.ts +105 -126
  434. package/src/data-structures/graph/map-graph.ts +29 -57
  435. package/src/data-structures/graph/undirected-graph.ts +67 -82
  436. package/src/data-structures/hash/coordinate-map.ts +0 -4
  437. package/src/data-structures/hash/coordinate-set.ts +0 -4
  438. package/src/data-structures/hash/hash-map.ts +65 -83
  439. package/src/data-structures/hash/hash-table.ts +109 -118
  440. package/src/data-structures/hash/index.ts +0 -1
  441. package/src/data-structures/hash/tree-map.ts +2 -1
  442. package/src/data-structures/hash/tree-set.ts +2 -1
  443. package/src/data-structures/heap/heap.ts +505 -128
  444. package/src/data-structures/heap/max-heap.ts +16 -21
  445. package/src/data-structures/heap/min-heap.ts +16 -22
  446. package/src/data-structures/linked-list/doubly-linked-list.ts +143 -174
  447. package/src/data-structures/linked-list/singly-linked-list.ts +174 -99
  448. package/src/data-structures/linked-list/skip-linked-list.ts +104 -49
  449. package/src/data-structures/matrix/matrix.ts +2 -2
  450. package/src/data-structures/matrix/matrix2d.ts +12 -14
  451. package/src/data-structures/matrix/navigator.ts +4 -4
  452. package/src/data-structures/matrix/vector2d.ts +2 -3
  453. package/src/data-structures/priority-queue/max-priority-queue.ts +15 -46
  454. package/src/data-structures/priority-queue/min-priority-queue.ts +15 -47
  455. package/src/data-structures/priority-queue/priority-queue.ts +7 -350
  456. package/src/data-structures/queue/deque.ts +62 -77
  457. package/src/data-structures/queue/queue.ts +39 -21
  458. package/src/data-structures/stack/stack.ts +13 -9
  459. package/src/data-structures/tree/tree.ts +10 -38
  460. package/src/data-structures/trie/trie.ts +108 -71
  461. package/src/interfaces/binary-tree.ts +7 -4
  462. package/src/interfaces/graph.ts +7 -0
  463. package/src/interfaces/index.ts +1 -8
  464. package/src/types/data-structures/binary-tree/avl-tree.ts +5 -0
  465. package/src/types/data-structures/binary-tree/binary-indexed-tree.ts +1 -0
  466. package/src/types/data-structures/binary-tree/binary-tree.ts +31 -0
  467. package/src/types/data-structures/binary-tree/bst.ts +11 -0
  468. package/src/types/data-structures/binary-tree/index.ts +6 -0
  469. package/src/types/data-structures/binary-tree/rb-tree.ts +8 -0
  470. package/src/types/data-structures/binary-tree/tree-multiset.ts +6 -0
  471. package/src/types/data-structures/graph/abstract-graph.ts +11 -0
  472. package/src/types/data-structures/graph/index.ts +3 -0
  473. package/src/types/data-structures/graph/undirected-graph.ts +1 -0
  474. package/src/types/data-structures/hash/coordinate-map.ts +1 -0
  475. package/src/types/data-structures/hash/coordinate-set.ts +1 -0
  476. package/src/types/data-structures/hash/hash-map.ts +1 -0
  477. package/src/types/data-structures/hash/hash-table.ts +1 -0
  478. package/src/types/data-structures/hash/tree-map.ts +1 -0
  479. package/src/types/data-structures/hash/tree-set.ts +1 -0
  480. package/src/types/data-structures/heap/heap.ts +1 -0
  481. package/src/types/data-structures/heap/index.ts +1 -0
  482. package/src/types/data-structures/heap/max-heap.ts +1 -0
  483. package/src/types/data-structures/heap/min-heap.ts +1 -0
  484. package/src/types/data-structures/index.ts +8 -13
  485. package/src/types/data-structures/linked-list/doubly-linked-list.ts +1 -0
  486. package/src/types/data-structures/linked-list/index.ts +2 -0
  487. package/src/types/data-structures/linked-list/singly-linked-list.ts +1 -0
  488. package/src/types/data-structures/linked-list/skip-linked-list.ts +1 -0
  489. package/src/types/data-structures/matrix/index.ts +1 -0
  490. package/src/types/data-structures/matrix/matrix.ts +1 -0
  491. package/src/types/data-structures/matrix/matrix2d.ts +1 -0
  492. package/src/types/data-structures/matrix/navigator.ts +14 -0
  493. package/src/types/data-structures/matrix/vector2d.ts +1 -0
  494. package/src/types/data-structures/priority-queue/index.ts +3 -0
  495. package/src/types/data-structures/priority-queue/max-priority-queue.ts +1 -0
  496. package/src/types/data-structures/priority-queue/min-priority-queue.ts +1 -0
  497. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  498. package/src/types/data-structures/queue/deque.ts +1 -0
  499. package/src/types/data-structures/queue/index.ts +2 -0
  500. package/src/types/data-structures/queue/queue.ts +1 -0
  501. package/src/types/data-structures/stack/index.ts +1 -0
  502. package/src/types/data-structures/stack/stack.ts +1 -0
  503. package/src/types/data-structures/tree/index.ts +1 -0
  504. package/src/types/data-structures/tree/tree.ts +1 -0
  505. package/src/types/data-structures/trie/index.ts +1 -0
  506. package/src/types/data-structures/trie/trie.ts +1 -0
  507. package/src/types/helpers.ts +11 -1
  508. package/src/types/utils/utils.ts +1 -1
  509. package/src/types/utils/validate-type.ts +2 -2
  510. package/src/utils/utils.ts +7 -0
  511. package/test/config.js +4 -0
  512. package/test/config.ts +1 -0
  513. package/test/integration/avl-tree.test.ts +24 -22
  514. package/test/integration/bst.test.ts +52 -47
  515. package/test/integration/index.html +3 -4
  516. package/test/types/index.js +29 -0
  517. package/test/types/utils/big-o.js +2 -0
  518. package/test/types/utils/big-o.ts +1 -0
  519. package/test/types/utils/index.js +29 -0
  520. package/test/types/utils/index.ts +1 -0
  521. package/test/unit/data-structures/binary-tree/avl-tree.test.ts +184 -23
  522. package/test/unit/data-structures/binary-tree/binary-index-tree.test.ts +320 -0
  523. package/test/unit/data-structures/binary-tree/binary-tree.test.ts +393 -40
  524. package/test/unit/data-structures/binary-tree/bst.test.ts +506 -48
  525. package/test/unit/data-structures/binary-tree/overall.test.ts +8 -7
  526. package/test/unit/data-structures/binary-tree/rb-tree.test.ts +240 -41
  527. package/test/unit/data-structures/binary-tree/tree-multiset.test.ts +296 -215
  528. package/test/unit/data-structures/graph/abstract-graph.test.ts +97 -2
  529. package/test/unit/data-structures/graph/directed-graph.test.ts +76 -31
  530. package/test/unit/data-structures/graph/map-graph.test.ts +93 -12
  531. package/test/unit/data-structures/graph/overall.test.ts +2 -2
  532. package/test/unit/data-structures/graph/undirected-graph.test.ts +93 -3
  533. package/test/unit/data-structures/hash/coordinate-map.test.ts +20 -0
  534. package/test/unit/data-structures/hash/coordinate-set.test.ts +25 -0
  535. package/test/unit/data-structures/hash/hash-map.test.ts +2 -3
  536. package/test/unit/data-structures/hash/hash-table.test.ts +10 -8
  537. package/test/unit/data-structures/heap/heap.test.ts +218 -20
  538. package/test/unit/data-structures/heap/max-heap.test.ts +50 -42
  539. package/test/unit/data-structures/heap/min-heap.test.ts +38 -68
  540. package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +86 -27
  541. package/test/unit/data-structures/linked-list/linked-list.test.ts +4 -4
  542. package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +71 -27
  543. package/test/unit/data-structures/linked-list/skip-list.test.ts +33 -2
  544. package/test/unit/data-structures/matrix/matrix2d.test.ts +207 -0
  545. package/test/unit/data-structures/matrix/navigator.test.ts +167 -2
  546. package/test/unit/data-structures/matrix/vector2d.test.ts +171 -0
  547. package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +10 -11
  548. package/test/unit/data-structures/priority-queue/min-priority-queue.test.ts +1 -1
  549. package/test/unit/data-structures/priority-queue/priority-queue.test.ts +14 -30
  550. package/test/unit/data-structures/queue/deque.test.ts +303 -23
  551. package/test/unit/data-structures/queue/queue.test.ts +52 -8
  552. package/test/unit/data-structures/tree/tree.test.ts +2 -2
  553. package/test/unit/data-structures/trie/trie.test.ts +743 -13
  554. package/test/utils/big-o.js +212 -0
  555. package/test/utils/big-o.ts +201 -0
  556. package/test/utils/index.js +30 -0
  557. package/test/utils/index.ts +1 -1
  558. package/test/utils/number.js +14 -0
  559. package/tsconfig-base.json +27 -0
  560. package/tsconfig-cjs.json +9 -0
  561. package/tsup.config.js +18 -0
  562. package/umd/bundle.min.js +1 -1
  563. package/umd/bundle.min.js.LICENSE.txt +15 -0
  564. package/umd/bundle.min.js.map +1 -1
  565. package/dist/data-structures/binary-tree/aa-tree.d.ts +0 -2
  566. package/dist/data-structures/binary-tree/aa-tree.js +0 -7
  567. package/dist/data-structures/binary-tree/aa-tree.js.map +0 -1
  568. package/dist/data-structures/binary-tree/abstract-binary-tree.d.ts +0 -527
  569. package/dist/data-structures/binary-tree/abstract-binary-tree.js +0 -1199
  570. package/dist/data-structures/binary-tree/abstract-binary-tree.js.map +0 -1
  571. package/dist/data-structures/binary-tree/avl-tree.d.ts +0 -94
  572. package/dist/data-structures/binary-tree/avl-tree.js +0 -336
  573. package/dist/data-structures/binary-tree/avl-tree.js.map +0 -1
  574. package/dist/data-structures/binary-tree/b-tree.d.ts +0 -2
  575. package/dist/data-structures/binary-tree/b-tree.js +0 -7
  576. package/dist/data-structures/binary-tree/b-tree.js.map +0 -1
  577. package/dist/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -46
  578. package/dist/data-structures/binary-tree/binary-indexed-tree.js +0 -74
  579. package/dist/data-structures/binary-tree/binary-indexed-tree.js.map +0 -1
  580. package/dist/data-structures/binary-tree/binary-tree.d.ts +0 -31
  581. package/dist/data-structures/binary-tree/binary-tree.js +0 -41
  582. package/dist/data-structures/binary-tree/binary-tree.js.map +0 -1
  583. package/dist/data-structures/binary-tree/bst.d.ts +0 -133
  584. package/dist/data-structures/binary-tree/bst.js +0 -554
  585. package/dist/data-structures/binary-tree/bst.js.map +0 -1
  586. package/dist/data-structures/binary-tree/index.d.ts +0 -12
  587. package/dist/data-structures/binary-tree/index.js +0 -29
  588. package/dist/data-structures/binary-tree/index.js.map +0 -1
  589. package/dist/data-structures/binary-tree/rb-tree.d.ts +0 -13
  590. package/dist/data-structures/binary-tree/rb-tree.js +0 -28
  591. package/dist/data-structures/binary-tree/rb-tree.js.map +0 -1
  592. package/dist/data-structures/binary-tree/segment-tree.d.ts +0 -83
  593. package/dist/data-structures/binary-tree/segment-tree.js +0 -229
  594. package/dist/data-structures/binary-tree/segment-tree.js.map +0 -1
  595. package/dist/data-structures/binary-tree/splay-tree.d.ts +0 -2
  596. package/dist/data-structures/binary-tree/splay-tree.js +0 -7
  597. package/dist/data-structures/binary-tree/splay-tree.js.map +0 -1
  598. package/dist/data-structures/binary-tree/tree-multiset.d.ts +0 -209
  599. package/dist/data-structures/binary-tree/tree-multiset.js +0 -669
  600. package/dist/data-structures/binary-tree/tree-multiset.js.map +0 -1
  601. package/dist/data-structures/binary-tree/two-three-tree.d.ts +0 -2
  602. package/dist/data-structures/binary-tree/two-three-tree.js +0 -7
  603. package/dist/data-structures/binary-tree/two-three-tree.js.map +0 -1
  604. package/dist/data-structures/graph/abstract-graph.d.ts +0 -332
  605. package/dist/data-structures/graph/abstract-graph.js +0 -925
  606. package/dist/data-structures/graph/abstract-graph.js.map +0 -1
  607. package/dist/data-structures/graph/directed-graph.d.ts +0 -200
  608. package/dist/data-structures/graph/directed-graph.js +0 -423
  609. package/dist/data-structures/graph/directed-graph.js.map +0 -1
  610. package/dist/data-structures/graph/index.js.map +0 -1
  611. package/dist/data-structures/graph/map-graph.d.ts +0 -79
  612. package/dist/data-structures/graph/map-graph.js +0 -112
  613. package/dist/data-structures/graph/map-graph.js.map +0 -1
  614. package/dist/data-structures/graph/undirected-graph.d.ts +0 -127
  615. package/dist/data-structures/graph/undirected-graph.js +0 -253
  616. package/dist/data-structures/graph/undirected-graph.js.map +0 -1
  617. package/dist/data-structures/hash/coordinate-map.d.ts +0 -45
  618. package/dist/data-structures/hash/coordinate-map.js +0 -66
  619. package/dist/data-structures/hash/coordinate-map.js.map +0 -1
  620. package/dist/data-structures/hash/coordinate-set.d.ts +0 -37
  621. package/dist/data-structures/hash/coordinate-set.js +0 -56
  622. package/dist/data-structures/hash/coordinate-set.js.map +0 -1
  623. package/dist/data-structures/hash/hash-map.d.ts +0 -56
  624. package/dist/data-structures/hash/hash-map.js +0 -172
  625. package/dist/data-structures/hash/hash-map.js.map +0 -1
  626. package/dist/data-structures/hash/hash-table.d.ts +0 -106
  627. package/dist/data-structures/hash/hash-table.js +0 -246
  628. package/dist/data-structures/hash/hash-table.js.map +0 -1
  629. package/dist/data-structures/hash/index.d.ts +0 -7
  630. package/dist/data-structures/hash/index.js +0 -24
  631. package/dist/data-structures/hash/index.js.map +0 -1
  632. package/dist/data-structures/hash/pair.d.ts +0 -2
  633. package/dist/data-structures/hash/pair.js +0 -7
  634. package/dist/data-structures/hash/pair.js.map +0 -1
  635. package/dist/data-structures/hash/tree-map.js.map +0 -1
  636. package/dist/data-structures/hash/tree-set.js.map +0 -1
  637. package/dist/data-structures/heap/heap.d.ts +0 -83
  638. package/dist/data-structures/heap/heap.js +0 -158
  639. package/dist/data-structures/heap/heap.js.map +0 -1
  640. package/dist/data-structures/heap/index.js.map +0 -1
  641. package/dist/data-structures/heap/max-heap.d.ts +0 -23
  642. package/dist/data-structures/heap/max-heap.js +0 -31
  643. package/dist/data-structures/heap/max-heap.js.map +0 -1
  644. package/dist/data-structures/heap/min-heap.d.ts +0 -24
  645. package/dist/data-structures/heap/min-heap.js +0 -32
  646. package/dist/data-structures/heap/min-heap.js.map +0 -1
  647. package/dist/data-structures/index.js.map +0 -1
  648. package/dist/data-structures/linked-list/doubly-linked-list.d.ts +0 -234
  649. package/dist/data-structures/linked-list/doubly-linked-list.js +0 -584
  650. package/dist/data-structures/linked-list/doubly-linked-list.js.map +0 -1
  651. package/dist/data-structures/linked-list/index.js.map +0 -1
  652. package/dist/data-structures/linked-list/singly-linked-list.d.ts +0 -157
  653. package/dist/data-structures/linked-list/singly-linked-list.js +0 -449
  654. package/dist/data-structures/linked-list/singly-linked-list.js.map +0 -1
  655. package/dist/data-structures/linked-list/skip-linked-list.d.ts +0 -61
  656. package/dist/data-structures/linked-list/skip-linked-list.js +0 -143
  657. package/dist/data-structures/linked-list/skip-linked-list.js.map +0 -1
  658. package/dist/data-structures/matrix/index.js.map +0 -1
  659. package/dist/data-structures/matrix/matrix.d.ts +0 -21
  660. package/dist/data-structures/matrix/matrix.js.map +0 -1
  661. package/dist/data-structures/matrix/matrix2d.d.ts +0 -108
  662. package/dist/data-structures/matrix/matrix2d.js +0 -201
  663. package/dist/data-structures/matrix/matrix2d.js.map +0 -1
  664. package/dist/data-structures/matrix/navigator.d.ts +0 -52
  665. package/dist/data-structures/matrix/navigator.js.map +0 -1
  666. package/dist/data-structures/matrix/vector2d.d.ts +0 -201
  667. package/dist/data-structures/matrix/vector2d.js +0 -292
  668. package/dist/data-structures/matrix/vector2d.js.map +0 -1
  669. package/dist/data-structures/priority-queue/index.js.map +0 -1
  670. package/dist/data-structures/priority-queue/max-priority-queue.d.ts +0 -15
  671. package/dist/data-structures/priority-queue/max-priority-queue.js +0 -44
  672. package/dist/data-structures/priority-queue/max-priority-queue.js.map +0 -1
  673. package/dist/data-structures/priority-queue/min-priority-queue.d.ts +0 -15
  674. package/dist/data-structures/priority-queue/min-priority-queue.js +0 -45
  675. package/dist/data-structures/priority-queue/min-priority-queue.js.map +0 -1
  676. package/dist/data-structures/priority-queue/priority-queue.d.ts +0 -180
  677. package/dist/data-structures/priority-queue/priority-queue.js +0 -322
  678. package/dist/data-structures/priority-queue/priority-queue.js.map +0 -1
  679. package/dist/data-structures/queue/deque.d.ts +0 -165
  680. package/dist/data-structures/queue/deque.js +0 -277
  681. package/dist/data-structures/queue/deque.js.map +0 -1
  682. package/dist/data-structures/queue/index.js.map +0 -1
  683. package/dist/data-structures/queue/queue.d.ts +0 -107
  684. package/dist/data-structures/queue/queue.js +0 -171
  685. package/dist/data-structures/queue/queue.js.map +0 -1
  686. package/dist/data-structures/stack/index.js.map +0 -1
  687. package/dist/data-structures/stack/stack.d.ts +0 -63
  688. package/dist/data-structures/stack/stack.js +0 -92
  689. package/dist/data-structures/stack/stack.js.map +0 -1
  690. package/dist/data-structures/tree/index.js.map +0 -1
  691. package/dist/data-structures/tree/tree.d.ts +0 -14
  692. package/dist/data-structures/tree/tree.js +0 -61
  693. package/dist/data-structures/tree/tree.js.map +0 -1
  694. package/dist/data-structures/trie/index.js.map +0 -1
  695. package/dist/data-structures/trie/trie.d.ts +0 -61
  696. package/dist/data-structures/trie/trie.js +0 -211
  697. package/dist/data-structures/trie/trie.js.map +0 -1
  698. package/dist/index.js.map +0 -1
  699. package/dist/interfaces/abstract-binary-tree.d.ts +0 -7
  700. package/dist/interfaces/abstract-binary-tree.js +0 -3
  701. package/dist/interfaces/abstract-binary-tree.js.map +0 -1
  702. package/dist/interfaces/abstract-graph.d.ts +0 -5
  703. package/dist/interfaces/abstract-graph.js.map +0 -1
  704. package/dist/interfaces/avl-tree.d.ts +0 -7
  705. package/dist/interfaces/avl-tree.js.map +0 -1
  706. package/dist/interfaces/binary-tree.d.ts +0 -6
  707. package/dist/interfaces/binary-tree.js.map +0 -1
  708. package/dist/interfaces/bst.d.ts +0 -6
  709. package/dist/interfaces/bst.js.map +0 -1
  710. package/dist/interfaces/directed-graph.d.ts +0 -3
  711. package/dist/interfaces/directed-graph.js +0 -3
  712. package/dist/interfaces/directed-graph.js.map +0 -1
  713. package/dist/interfaces/doubly-linked-list.js.map +0 -1
  714. package/dist/interfaces/heap.js.map +0 -1
  715. package/dist/interfaces/index.d.ts +0 -15
  716. package/dist/interfaces/index.js +0 -32
  717. package/dist/interfaces/index.js.map +0 -1
  718. package/dist/interfaces/navigator.js.map +0 -1
  719. package/dist/interfaces/priority-queue.js.map +0 -1
  720. package/dist/interfaces/rb-tree.d.ts +0 -6
  721. package/dist/interfaces/rb-tree.js +0 -3
  722. package/dist/interfaces/rb-tree.js.map +0 -1
  723. package/dist/interfaces/segment-tree.js.map +0 -1
  724. package/dist/interfaces/singly-linked-list.js.map +0 -1
  725. package/dist/interfaces/tree-multiset.d.ts +0 -6
  726. package/dist/interfaces/tree-multiset.js.map +0 -1
  727. package/dist/interfaces/undirected-graph.d.ts +0 -3
  728. package/dist/interfaces/undirected-graph.js.map +0 -1
  729. package/dist/types/data-structures/abstract-binary-tree.d.ts +0 -34
  730. package/dist/types/data-structures/abstract-binary-tree.js +0 -25
  731. package/dist/types/data-structures/abstract-binary-tree.js.map +0 -1
  732. package/dist/types/data-structures/abstract-graph.d.ts +0 -11
  733. package/dist/types/data-structures/abstract-graph.js +0 -3
  734. package/dist/types/data-structures/abstract-graph.js.map +0 -1
  735. package/dist/types/data-structures/avl-tree.d.ts +0 -4
  736. package/dist/types/data-structures/avl-tree.js +0 -3
  737. package/dist/types/data-structures/avl-tree.js.map +0 -1
  738. package/dist/types/data-structures/binary-tree.d.ts +0 -4
  739. package/dist/types/data-structures/binary-tree.js +0 -3
  740. package/dist/types/data-structures/binary-tree.js.map +0 -1
  741. package/dist/types/data-structures/bst.d.ts +0 -13
  742. package/dist/types/data-structures/bst.js +0 -10
  743. package/dist/types/data-structures/bst.js.map +0 -1
  744. package/dist/types/data-structures/directed-graph.js.map +0 -1
  745. package/dist/types/data-structures/doubly-linked-list.js.map +0 -1
  746. package/dist/types/data-structures/hash.js +0 -3
  747. package/dist/types/data-structures/hash.js.map +0 -1
  748. package/dist/types/data-structures/heap.d.ts +0 -3
  749. package/dist/types/data-structures/heap.js.map +0 -1
  750. package/dist/types/data-structures/index.d.ts +0 -16
  751. package/dist/types/data-structures/index.js +0 -33
  752. package/dist/types/data-structures/index.js.map +0 -1
  753. package/dist/types/data-structures/map-graph.js.map +0 -1
  754. package/dist/types/data-structures/navigator.js.map +0 -1
  755. package/dist/types/data-structures/priority-queue.d.ts +0 -7
  756. package/dist/types/data-structures/priority-queue.js.map +0 -1
  757. package/dist/types/data-structures/rb-tree.d.ts +0 -8
  758. package/dist/types/data-structures/rb-tree.js +0 -9
  759. package/dist/types/data-structures/rb-tree.js.map +0 -1
  760. package/dist/types/data-structures/segment-tree.js.map +0 -1
  761. package/dist/types/data-structures/singly-linked-list.js.map +0 -1
  762. package/dist/types/data-structures/tree-multiset.d.ts +0 -4
  763. package/dist/types/data-structures/tree-multiset.js +0 -3
  764. package/dist/types/data-structures/tree-multiset.js.map +0 -1
  765. package/dist/types/helpers.js +0 -3
  766. package/dist/types/helpers.js.map +0 -1
  767. package/dist/types/index.js.map +0 -1
  768. package/dist/types/utils/index.js.map +0 -1
  769. package/dist/types/utils/utils.js.map +0 -1
  770. package/dist/types/utils/validate-type.js.map +0 -1
  771. package/dist/utils/index.js.map +0 -1
  772. package/dist/utils/utils.d.ts +0 -19
  773. package/dist/utils/utils.js +0 -67
  774. package/dist/utils/utils.js.map +0 -1
  775. package/lib/data-structures/binary-tree/aa-tree.d.ts +0 -2
  776. package/lib/data-structures/binary-tree/aa-tree.js +0 -2
  777. package/lib/data-structures/binary-tree/abstract-binary-tree.d.ts +0 -527
  778. package/lib/data-structures/binary-tree/abstract-binary-tree.js +0 -1193
  779. package/lib/data-structures/binary-tree/avl-tree.d.ts +0 -94
  780. package/lib/data-structures/binary-tree/avl-tree.js +0 -330
  781. package/lib/data-structures/binary-tree/b-tree.d.ts +0 -2
  782. package/lib/data-structures/binary-tree/b-tree.js +0 -2
  783. package/lib/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -46
  784. package/lib/data-structures/binary-tree/binary-indexed-tree.js +0 -69
  785. package/lib/data-structures/binary-tree/binary-tree.d.ts +0 -31
  786. package/lib/data-structures/binary-tree/binary-tree.js +0 -35
  787. package/lib/data-structures/binary-tree/bst.d.ts +0 -133
  788. package/lib/data-structures/binary-tree/bst.js +0 -548
  789. package/lib/data-structures/binary-tree/index.d.ts +0 -12
  790. package/lib/data-structures/binary-tree/index.js +0 -12
  791. package/lib/data-structures/binary-tree/rb-tree.d.ts +0 -13
  792. package/lib/data-structures/binary-tree/rb-tree.js +0 -22
  793. package/lib/data-structures/binary-tree/segment-tree.d.ts +0 -83
  794. package/lib/data-structures/binary-tree/segment-tree.js +0 -223
  795. package/lib/data-structures/binary-tree/splay-tree.d.ts +0 -2
  796. package/lib/data-structures/binary-tree/splay-tree.js +0 -2
  797. package/lib/data-structures/binary-tree/tree-multiset.d.ts +0 -209
  798. package/lib/data-structures/binary-tree/tree-multiset.js +0 -663
  799. package/lib/data-structures/binary-tree/two-three-tree.d.ts +0 -2
  800. package/lib/data-structures/binary-tree/two-three-tree.js +0 -2
  801. package/lib/data-structures/graph/abstract-graph.d.ts +0 -332
  802. package/lib/data-structures/graph/abstract-graph.js +0 -918
  803. package/lib/data-structures/graph/directed-graph.d.ts +0 -200
  804. package/lib/data-structures/graph/directed-graph.js +0 -416
  805. package/lib/data-structures/graph/index.js +0 -4
  806. package/lib/data-structures/graph/map-graph.d.ts +0 -79
  807. package/lib/data-structures/graph/map-graph.js +0 -105
  808. package/lib/data-structures/graph/undirected-graph.d.ts +0 -127
  809. package/lib/data-structures/graph/undirected-graph.js +0 -246
  810. package/lib/data-structures/hash/coordinate-map.d.ts +0 -45
  811. package/lib/data-structures/hash/coordinate-map.js +0 -61
  812. package/lib/data-structures/hash/coordinate-set.d.ts +0 -37
  813. package/lib/data-structures/hash/coordinate-set.js +0 -51
  814. package/lib/data-structures/hash/hash-map.d.ts +0 -56
  815. package/lib/data-structures/hash/hash-map.js +0 -167
  816. package/lib/data-structures/hash/hash-table.d.ts +0 -106
  817. package/lib/data-structures/hash/hash-table.js +0 -240
  818. package/lib/data-structures/hash/index.d.ts +0 -7
  819. package/lib/data-structures/hash/index.js +0 -7
  820. package/lib/data-structures/hash/pair.d.ts +0 -2
  821. package/lib/data-structures/hash/pair.js +0 -2
  822. package/lib/data-structures/hash/tree-map.js +0 -2
  823. package/lib/data-structures/hash/tree-set.js +0 -2
  824. package/lib/data-structures/heap/heap.d.ts +0 -83
  825. package/lib/data-structures/heap/heap.js +0 -152
  826. package/lib/data-structures/heap/index.js +0 -3
  827. package/lib/data-structures/heap/max-heap.d.ts +0 -23
  828. package/lib/data-structures/heap/max-heap.js +0 -26
  829. package/lib/data-structures/heap/min-heap.d.ts +0 -24
  830. package/lib/data-structures/heap/min-heap.js +0 -27
  831. package/lib/data-structures/index.js +0 -11
  832. package/lib/data-structures/linked-list/doubly-linked-list.d.ts +0 -234
  833. package/lib/data-structures/linked-list/doubly-linked-list.js +0 -578
  834. package/lib/data-structures/linked-list/index.js +0 -3
  835. package/lib/data-structures/linked-list/singly-linked-list.d.ts +0 -157
  836. package/lib/data-structures/linked-list/singly-linked-list.js +0 -443
  837. package/lib/data-structures/linked-list/skip-linked-list.d.ts +0 -61
  838. package/lib/data-structures/linked-list/skip-linked-list.js +0 -137
  839. package/lib/data-structures/matrix/index.js +0 -4
  840. package/lib/data-structures/matrix/matrix.d.ts +0 -21
  841. package/lib/data-structures/matrix/matrix.js +0 -24
  842. package/lib/data-structures/matrix/matrix2d.d.ts +0 -108
  843. package/lib/data-structures/matrix/matrix2d.js +0 -196
  844. package/lib/data-structures/matrix/navigator.d.ts +0 -52
  845. package/lib/data-structures/matrix/navigator.js +0 -101
  846. package/lib/data-structures/matrix/vector2d.d.ts +0 -201
  847. package/lib/data-structures/matrix/vector2d.js +0 -287
  848. package/lib/data-structures/priority-queue/max-priority-queue.d.ts +0 -15
  849. package/lib/data-structures/priority-queue/max-priority-queue.js +0 -39
  850. package/lib/data-structures/priority-queue/min-priority-queue.d.ts +0 -15
  851. package/lib/data-structures/priority-queue/min-priority-queue.js +0 -40
  852. package/lib/data-structures/priority-queue/priority-queue.d.ts +0 -180
  853. package/lib/data-structures/priority-queue/priority-queue.js +0 -317
  854. package/lib/data-structures/queue/deque.d.ts +0 -165
  855. package/lib/data-structures/queue/deque.js +0 -270
  856. package/lib/data-structures/queue/queue.d.ts +0 -107
  857. package/lib/data-structures/queue/queue.js +0 -165
  858. package/lib/data-structures/stack/stack.d.ts +0 -63
  859. package/lib/data-structures/stack/stack.js +0 -87
  860. package/lib/data-structures/tree/tree.d.ts +0 -14
  861. package/lib/data-structures/tree/tree.js +0 -56
  862. package/lib/data-structures/trie/trie.d.ts +0 -61
  863. package/lib/data-structures/trie/trie.js +0 -205
  864. package/lib/index.js +0 -4
  865. package/lib/interfaces/abstract-binary-tree.d.ts +0 -7
  866. package/lib/interfaces/abstract-graph.d.ts +0 -5
  867. package/lib/interfaces/avl-tree.d.ts +0 -7
  868. package/lib/interfaces/binary-tree.d.ts +0 -6
  869. package/lib/interfaces/bst.d.ts +0 -6
  870. package/lib/interfaces/directed-graph.d.ts +0 -3
  871. package/lib/interfaces/index.d.ts +0 -15
  872. package/lib/interfaces/index.js +0 -15
  873. package/lib/interfaces/rb-tree.d.ts +0 -6
  874. package/lib/interfaces/tree-multiset.d.ts +0 -6
  875. package/lib/interfaces/undirected-graph.d.ts +0 -3
  876. package/lib/types/data-structures/abstract-binary-tree.d.ts +0 -34
  877. package/lib/types/data-structures/abstract-binary-tree.js +0 -21
  878. package/lib/types/data-structures/abstract-graph.d.ts +0 -11
  879. package/lib/types/data-structures/avl-tree.d.ts +0 -4
  880. package/lib/types/data-structures/binary-tree.d.ts +0 -4
  881. package/lib/types/data-structures/bst.d.ts +0 -13
  882. package/lib/types/data-structures/bst.js +0 -6
  883. package/lib/types/data-structures/directed-graph.js +0 -6
  884. package/lib/types/data-structures/heap.d.ts +0 -3
  885. package/lib/types/data-structures/index.d.ts +0 -16
  886. package/lib/types/data-structures/index.js +0 -16
  887. package/lib/types/data-structures/priority-queue.d.ts +0 -7
  888. package/lib/types/data-structures/rb-tree.d.ts +0 -8
  889. package/lib/types/data-structures/rb-tree.js +0 -5
  890. package/lib/types/data-structures/tree-multiset.d.ts +0 -4
  891. package/lib/types/index.js +0 -3
  892. package/lib/types/utils/index.js +0 -2
  893. package/lib/utils/utils.d.ts +0 -19
  894. package/lib/utils/utils.js +0 -57
  895. package/scripts/rename_clear_files.sh +0 -29
  896. package/src/data-structures/binary-tree/aa-tree.ts +0 -1
  897. package/src/data-structures/binary-tree/abstract-binary-tree.ts +0 -1556
  898. package/src/data-structures/binary-tree/b-tree.ts +0 -1
  899. package/src/data-structures/binary-tree/splay-tree.ts +0 -1
  900. package/src/data-structures/binary-tree/two-three-tree.ts +0 -1
  901. package/src/data-structures/hash/pair.ts +0 -1
  902. package/src/interfaces/abstract-binary-tree.ts +0 -8
  903. package/src/interfaces/abstract-graph.ts +0 -7
  904. package/src/interfaces/avl-tree.ts +0 -8
  905. package/src/interfaces/bst.ts +0 -6
  906. package/src/interfaces/directed-graph.ts +0 -3
  907. package/src/interfaces/rb-tree.ts +0 -6
  908. package/src/interfaces/tree-multiset.ts +0 -7
  909. package/src/interfaces/undirected-graph.ts +0 -3
  910. package/src/types/data-structures/abstract-binary-tree.ts +0 -49
  911. package/src/types/data-structures/abstract-graph.ts +0 -11
  912. package/src/types/data-structures/avl-tree.ts +0 -5
  913. package/src/types/data-structures/binary-tree.ts +0 -5
  914. package/src/types/data-structures/bst.ts +0 -13
  915. package/src/types/data-structures/heap.ts +0 -5
  916. package/src/types/data-structures/navigator.ts +0 -13
  917. package/src/types/data-structures/priority-queue.ts +0 -9
  918. package/src/types/data-structures/rb-tree.ts +0 -8
  919. package/src/types/data-structures/tree-multiset.ts +0 -6
  920. package/test/utils/magnitude.ts +0 -21
  921. /package/dist/{data-structures → cjs/data-structures}/graph/index.d.ts +0 -0
  922. /package/dist/{data-structures → cjs/data-structures}/graph/index.js +0 -0
  923. /package/dist/{data-structures → cjs/data-structures}/hash/tree-map.d.ts +0 -0
  924. /package/dist/{data-structures → cjs/data-structures}/hash/tree-map.js +0 -0
  925. /package/dist/{data-structures → cjs/data-structures}/hash/tree-set.d.ts +0 -0
  926. /package/dist/{data-structures → cjs/data-structures}/hash/tree-set.js +0 -0
  927. /package/dist/{data-structures → cjs/data-structures}/heap/index.d.ts +0 -0
  928. /package/dist/{data-structures → cjs/data-structures}/heap/index.js +0 -0
  929. /package/dist/{data-structures → cjs/data-structures}/index.d.ts +0 -0
  930. /package/dist/{data-structures → cjs/data-structures}/index.js +0 -0
  931. /package/dist/{data-structures → cjs/data-structures}/linked-list/index.d.ts +0 -0
  932. /package/dist/{data-structures → cjs/data-structures}/linked-list/index.js +0 -0
  933. /package/dist/{data-structures → cjs/data-structures}/matrix/index.d.ts +0 -0
  934. /package/dist/{data-structures → cjs/data-structures}/matrix/index.js +0 -0
  935. /package/dist/{data-structures → cjs/data-structures}/matrix/matrix.js +0 -0
  936. /package/dist/{data-structures → cjs/data-structures}/matrix/navigator.js +0 -0
  937. /package/dist/{data-structures → cjs/data-structures}/priority-queue/index.d.ts +0 -0
  938. /package/dist/{data-structures → cjs/data-structures}/priority-queue/index.js +0 -0
  939. /package/dist/{data-structures → cjs/data-structures}/queue/index.d.ts +0 -0
  940. /package/dist/{data-structures → cjs/data-structures}/queue/index.js +0 -0
  941. /package/dist/{data-structures → cjs/data-structures}/stack/index.d.ts +0 -0
  942. /package/dist/{data-structures → cjs/data-structures}/stack/index.js +0 -0
  943. /package/dist/{data-structures → cjs/data-structures}/tree/index.d.ts +0 -0
  944. /package/dist/{data-structures → cjs/data-structures}/tree/index.js +0 -0
  945. /package/dist/{data-structures → cjs/data-structures}/trie/index.d.ts +0 -0
  946. /package/dist/{data-structures → cjs/data-structures}/trie/index.js +0 -0
  947. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  948. /package/dist/{index.js → cjs/index.js} +0 -0
  949. /package/dist/{interfaces → cjs/interfaces}/binary-tree.js +0 -0
  950. /package/dist/{interfaces → cjs/interfaces}/doubly-linked-list.d.ts +0 -0
  951. /package/dist/{interfaces → cjs/interfaces}/doubly-linked-list.js +0 -0
  952. /package/dist/{interfaces → cjs/interfaces}/heap.d.ts +0 -0
  953. /package/dist/{interfaces → cjs/interfaces}/heap.js +0 -0
  954. /package/dist/{interfaces → cjs/interfaces}/navigator.d.ts +0 -0
  955. /package/dist/{interfaces → cjs/interfaces}/navigator.js +0 -0
  956. /package/dist/{interfaces → cjs/interfaces}/priority-queue.d.ts +0 -0
  957. /package/dist/{interfaces → cjs/interfaces}/priority-queue.js +0 -0
  958. /package/dist/{interfaces → cjs/interfaces}/segment-tree.d.ts +0 -0
  959. /package/dist/{interfaces → cjs/interfaces}/segment-tree.js +0 -0
  960. /package/dist/{interfaces → cjs/interfaces}/singly-linked-list.d.ts +0 -0
  961. /package/dist/{interfaces → cjs/interfaces}/singly-linked-list.js +0 -0
  962. /package/dist/{interfaces → cjs/types/data-structures/binary-tree}/avl-tree.js +0 -0
  963. /package/dist/{types/data-structures/doubly-linked-list.d.ts → cjs/types/data-structures/binary-tree/binary-indexed-tree.d.ts} +0 -0
  964. /package/dist/{interfaces → cjs/types/data-structures/binary-tree}/bst.js +0 -0
  965. /package/dist/{types/data-structures → cjs/types/data-structures/binary-tree}/segment-tree.d.ts +0 -0
  966. /package/dist/{types/data-structures → cjs/types/data-structures/binary-tree}/segment-tree.js +0 -0
  967. /package/dist/{interfaces → cjs/types/data-structures/binary-tree}/tree-multiset.js +0 -0
  968. /package/dist/{interfaces → cjs/types/data-structures/graph}/abstract-graph.js +0 -0
  969. /package/dist/{types/data-structures → cjs/types/data-structures/graph}/directed-graph.d.ts +0 -0
  970. /package/dist/{types/data-structures → cjs/types/data-structures/graph}/directed-graph.js +0 -0
  971. /package/dist/{types/data-structures → cjs/types/data-structures/graph}/map-graph.d.ts +0 -0
  972. /package/dist/{types/data-structures → cjs/types/data-structures/graph}/map-graph.js +0 -0
  973. /package/dist/{types/data-structures/singly-linked-list.d.ts → cjs/types/data-structures/graph/undirected-graph.d.ts} +0 -0
  974. /package/dist/{interfaces → cjs/types/data-structures/graph}/undirected-graph.js +0 -0
  975. /package/dist/{types/helpers.d.ts → cjs/types/data-structures/hash/coordinate-map.d.ts} +0 -0
  976. /package/{lib/interfaces/abstract-binary-tree.js → dist/cjs/types/data-structures/hash/coordinate-set.d.ts} +0 -0
  977. /package/{lib/interfaces/abstract-graph.js → dist/cjs/types/data-structures/hash/hash-map.d.ts} +0 -0
  978. /package/{lib/interfaces/avl-tree.js → dist/cjs/types/data-structures/hash/hash-table.d.ts} +0 -0
  979. /package/dist/{types/data-structures/hash.d.ts → cjs/types/data-structures/hash/index.d.ts} +0 -0
  980. /package/{lib/interfaces/binary-tree.js → dist/cjs/types/data-structures/hash/tree-map.d.ts} +0 -0
  981. /package/{lib/interfaces/bst.js → dist/cjs/types/data-structures/hash/tree-set.d.ts} +0 -0
  982. /package/{lib/interfaces → dist/cjs/types/data-structures/heap}/heap.d.ts +0 -0
  983. /package/dist/{types/data-structures → cjs/types/data-structures/heap}/heap.js +0 -0
  984. /package/{lib/interfaces/directed-graph.js → dist/cjs/types/data-structures/heap/max-heap.d.ts} +0 -0
  985. /package/{lib/interfaces/doubly-linked-list.d.ts → dist/cjs/types/data-structures/heap/min-heap.d.ts} +0 -0
  986. /package/{lib/types/data-structures → dist/cjs/types/data-structures/linked-list}/doubly-linked-list.d.ts +0 -0
  987. /package/dist/{types/data-structures → cjs/types/data-structures/linked-list}/doubly-linked-list.js +0 -0
  988. /package/{lib/interfaces → dist/cjs/types/data-structures/linked-list}/singly-linked-list.d.ts +0 -0
  989. /package/dist/{types/data-structures → cjs/types/data-structures/linked-list}/singly-linked-list.js +0 -0
  990. /package/{lib/interfaces/doubly-linked-list.js → dist/cjs/types/data-structures/linked-list/skip-linked-list.d.ts} +0 -0
  991. /package/{lib/interfaces/heap.js → dist/cjs/types/data-structures/matrix/matrix.d.ts} +0 -0
  992. /package/{lib/interfaces/navigator.d.ts → dist/cjs/types/data-structures/matrix/matrix2d.d.ts} +0 -0
  993. /package/dist/{types/data-structures → cjs/types/data-structures/matrix}/navigator.d.ts +0 -0
  994. /package/dist/{types/data-structures → cjs/types/data-structures/matrix}/navigator.js +0 -0
  995. /package/{lib/interfaces/navigator.js → dist/cjs/types/data-structures/matrix/vector2d.d.ts} +0 -0
  996. /package/{lib → dist/cjs/types}/data-structures/priority-queue/index.d.ts +0 -0
  997. /package/{lib/interfaces/priority-queue.d.ts → dist/cjs/types/data-structures/priority-queue/max-priority-queue.d.ts} +0 -0
  998. /package/{lib/interfaces/priority-queue.js → dist/cjs/types/data-structures/priority-queue/min-priority-queue.d.ts} +0 -0
  999. /package/{lib/interfaces/rb-tree.js → dist/cjs/types/data-structures/priority-queue/priority-queue.d.ts} +0 -0
  1000. /package/dist/{types/data-structures → cjs/types/data-structures/priority-queue}/priority-queue.js +0 -0
  1001. /package/{lib/interfaces/segment-tree.d.ts → dist/cjs/types/data-structures/queue/deque.d.ts} +0 -0
  1002. /package/{lib → dist/cjs/types}/data-structures/queue/index.d.ts +0 -0
  1003. /package/{lib/interfaces/segment-tree.js → dist/cjs/types/data-structures/queue/queue.d.ts} +0 -0
  1004. /package/{lib → dist/cjs/types}/data-structures/stack/index.d.ts +0 -0
  1005. /package/{lib/interfaces/singly-linked-list.js → dist/cjs/types/data-structures/stack/stack.d.ts} +0 -0
  1006. /package/{lib → dist/cjs/types}/data-structures/tree/index.d.ts +0 -0
  1007. /package/{lib/interfaces/tree-multiset.js → dist/cjs/types/data-structures/tree/tree.d.ts} +0 -0
  1008. /package/{lib → dist/cjs/types}/data-structures/trie/index.d.ts +0 -0
  1009. /package/{lib/interfaces/undirected-graph.js → dist/cjs/types/data-structures/trie/trie.d.ts} +0 -0
  1010. /package/dist/{types → cjs/types}/index.d.ts +0 -0
  1011. /package/dist/{types → cjs/types}/index.js +0 -0
  1012. /package/dist/{types → cjs/types}/utils/index.d.ts +0 -0
  1013. /package/dist/{types → cjs/types}/utils/index.js +0 -0
  1014. /package/dist/{types → cjs/types}/utils/utils.d.ts +0 -0
  1015. /package/dist/{types → cjs/types}/utils/utils.js +0 -0
  1016. /package/dist/{types → cjs/types}/utils/validate-type.d.ts +0 -0
  1017. /package/dist/{types → cjs/types}/utils/validate-type.js +0 -0
  1018. /package/dist/{utils → cjs/utils}/index.d.ts +0 -0
  1019. /package/dist/{utils → cjs/utils}/index.js +0 -0
  1020. /package/{lib → dist/mjs}/data-structures/graph/index.d.ts +0 -0
  1021. /package/{lib → dist/mjs}/data-structures/hash/tree-map.d.ts +0 -0
  1022. /package/{lib → dist/mjs}/data-structures/hash/tree-set.d.ts +0 -0
  1023. /package/{lib → dist/mjs}/data-structures/heap/index.d.ts +0 -0
  1024. /package/{lib → dist/mjs}/data-structures/index.d.ts +0 -0
  1025. /package/{lib → dist/mjs}/data-structures/linked-list/index.d.ts +0 -0
  1026. /package/{lib → dist/mjs}/data-structures/matrix/index.d.ts +0 -0
  1027. /package/{lib/data-structures/priority-queue/index.js → dist/mjs/data-structures/priority-queue/index.d.ts} +0 -0
  1028. /package/{lib/data-structures/queue/index.js → dist/mjs/data-structures/queue/index.d.ts} +0 -0
  1029. /package/{lib/data-structures/stack/index.js → dist/mjs/data-structures/stack/index.d.ts} +0 -0
  1030. /package/{lib/data-structures/tree/index.js → dist/mjs/data-structures/tree/index.d.ts} +0 -0
  1031. /package/{lib/data-structures/trie/index.js → dist/mjs/data-structures/trie/index.d.ts} +0 -0
  1032. /package/{lib → dist/mjs}/index.d.ts +0 -0
  1033. /package/{lib/types/data-structures/abstract-graph.js → dist/mjs/interfaces/doubly-linked-list.d.ts} +0 -0
  1034. /package/{lib/types/data-structures/avl-tree.js → dist/mjs/interfaces/heap.d.ts} +0 -0
  1035. /package/{lib/types/data-structures/binary-tree.js → dist/mjs/interfaces/navigator.d.ts} +0 -0
  1036. /package/{lib/types/data-structures/doubly-linked-list.js → dist/mjs/interfaces/priority-queue.d.ts} +0 -0
  1037. /package/{lib/types/data-structures/hash.js → dist/mjs/interfaces/segment-tree.d.ts} +0 -0
  1038. /package/{lib/types/data-structures → dist/mjs/interfaces}/singly-linked-list.d.ts +0 -0
  1039. /package/{lib/types/data-structures/heap.js → dist/mjs/types/data-structures/binary-tree/binary-indexed-tree.d.ts} +0 -0
  1040. /package/{lib/types/data-structures → dist/mjs/types/data-structures/binary-tree}/segment-tree.d.ts +0 -0
  1041. /package/{lib/types/data-structures → dist/mjs/types/data-structures/graph}/directed-graph.d.ts +0 -0
  1042. /package/{lib/types/data-structures → dist/mjs/types/data-structures/graph}/map-graph.d.ts +0 -0
  1043. /package/{lib/types/data-structures/map-graph.js → dist/mjs/types/data-structures/graph/undirected-graph.d.ts} +0 -0
  1044. /package/{lib/types/data-structures/navigator.js → dist/mjs/types/data-structures/hash/coordinate-map.d.ts} +0 -0
  1045. /package/{lib/types/data-structures/priority-queue.js → dist/mjs/types/data-structures/hash/coordinate-set.d.ts} +0 -0
  1046. /package/{lib/types/data-structures/segment-tree.js → dist/mjs/types/data-structures/hash/hash-map.d.ts} +0 -0
  1047. /package/{lib/types/data-structures/singly-linked-list.js → dist/mjs/types/data-structures/hash/hash-table.d.ts} +0 -0
  1048. /package/{lib/types/data-structures/hash.d.ts → dist/mjs/types/data-structures/hash/index.d.ts} +0 -0
  1049. /package/{lib/types/data-structures/tree-multiset.js → dist/mjs/types/data-structures/hash/tree-map.d.ts} +0 -0
  1050. /package/{lib/types/helpers.d.ts → dist/mjs/types/data-structures/hash/tree-set.d.ts} +0 -0
  1051. /package/{lib/types/helpers.js → dist/mjs/types/data-structures/heap/heap.d.ts} +0 -0
  1052. /package/{lib/types/utils/utils.js → dist/mjs/types/data-structures/heap/max-heap.d.ts} +0 -0
  1053. /package/{lib/types/utils/validate-type.js → dist/mjs/types/data-structures/heap/min-heap.d.ts} +0 -0
  1054. /package/{src/types/data-structures/doubly-linked-list.ts → dist/mjs/types/data-structures/linked-list/doubly-linked-list.d.ts} +0 -0
  1055. /package/{src/types/data-structures/singly-linked-list.ts → dist/mjs/types/data-structures/linked-list/singly-linked-list.d.ts} +0 -0
  1056. /package/{lib/types/data-structures → dist/mjs/types/data-structures/matrix}/navigator.d.ts +0 -0
  1057. /package/{lib → dist/mjs}/types/index.d.ts +0 -0
  1058. /package/{lib → dist/mjs}/types/utils/index.d.ts +0 -0
  1059. /package/{lib → dist/mjs}/types/utils/utils.d.ts +0 -0
  1060. /package/{lib → dist/mjs}/types/utils/validate-type.d.ts +0 -0
  1061. /package/{lib → dist/mjs}/utils/index.d.ts +0 -0
  1062. /package/src/types/data-structures/{segment-tree.ts → binary-tree/segment-tree.ts} +0 -0
  1063. /package/src/types/data-structures/{directed-graph.ts → graph/directed-graph.ts} +0 -0
  1064. /package/src/types/data-structures/{map-graph.ts → graph/map-graph.ts} +0 -0
  1065. /package/src/types/data-structures/{hash.ts → hash/index.ts} +0 -0
  1066. /package/{lib/utils/index.js → test/types/index.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-binary-tree.js","sourceRoot":"","sources":["../../../src/data-structures/binary-tree/abstract-binary-tree.ts"],"names":[],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- /**
2
- * data-structure-typed
3
- *
4
- * @author Tyler Zeng
5
- * @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
6
- * @license MIT License
7
- */
8
- import { BST, BSTNode } from './bst';
9
- import type { AVLTreeNodeNested, AVLTreeOptions, BinaryTreeDeletedResult, BinaryTreeNodeKey } from '../../types';
10
- import { IAVLTree, IAVLTreeNode } from '../../interfaces';
11
- export declare class AVLTreeNode<V = any, NEIGHBOR extends AVLTreeNode<V, NEIGHBOR> = AVLTreeNodeNested<V>> extends BSTNode<V, NEIGHBOR> implements IAVLTreeNode<V, NEIGHBOR> {
12
- height: number;
13
- constructor(key: BinaryTreeNodeKey, val?: V);
14
- }
15
- export declare class AVLTree<N extends AVLTreeNode<N['val'], N> = AVLTreeNode> extends BST<N> implements IAVLTree<N> {
16
- /**
17
- * This is a constructor function for an AVL tree data structure in TypeScript.
18
- * @param {AVLTreeOptions} [options] - The `options` parameter is an optional object that can be passed to the
19
- * constructor of the AVLTree class. It allows you to customize the behavior of the AVL tree by providing different
20
- * options.
21
- */
22
- constructor(options?: AVLTreeOptions);
23
- /**
24
- * The `swapLocation` function swaps the location of two nodes in a binary tree.
25
- * @param {N} srcNode - The source node that you want to swap with the destination node.
26
- * @param {N} destNode - The `destNode` parameter represents the destination node where the values from `srcNode` will
27
- * be swapped to.
28
- * @returns The `destNode` is being returned.
29
- */
30
- swapLocation(srcNode: N, destNode: N): N;
31
- /**
32
- * The function creates a new AVL tree node with the given key and value.
33
- * @param {BinaryTreeNodeKey} key - The `key` parameter is the identifier for the binary tree node. It is used to uniquely
34
- * identify each node in the tree.
35
- * @param [val] - The `val` parameter is an optional value that can be assigned to the node. It represents the value
36
- * that will be stored in the node.
37
- * @returns a new AVLTreeNode object with the specified key and value.
38
- */
39
- createNode(key: BinaryTreeNodeKey, val?: N['val']): N;
40
- /**
41
- * The function overrides the add method of a binary tree node and balances the tree after inserting a new node.
42
- * @param {BinaryTreeNodeKey} key - The `key` parameter is the identifier of the binary tree node that we want to add.
43
- * @param [val] - The `val` parameter is an optional value that can be assigned to the node being added. It is of type
44
- * `N['val']`, which means it should be of the same type as the `val` property of the nodes in the binary tree.
45
- * @returns The method is returning the inserted node, or null or undefined if the insertion was not successful.
46
- */
47
- add(key: BinaryTreeNodeKey, val?: N['val']): N | null | undefined;
48
- /**
49
- * The function overrides the remove method of a binary tree and performs additional operations to balance the tree after
50
- * deletion.
51
- * @param {BinaryTreeNodeKey} key - The `key` parameter represents the identifier of the binary tree node that needs to be
52
- * removed.
53
- * @returns The method is returning an array of `BinaryTreeDeletedResult<N>` objects.
54
- */
55
- remove(key: BinaryTreeNodeKey): BinaryTreeDeletedResult<N>[];
56
- /**
57
- * The balance factor of a given AVL tree node is calculated by subtracting the height of its left subtree from the
58
- * height of its right subtree.
59
- * @param node - The parameter "node" is of type N, which represents a node in an AVL tree.
60
- * @returns The balance factor of the given AVL tree node.
61
- */
62
- protected _balanceFactor(node: N): number;
63
- /**
64
- * The function updates the height of a node in an AVL tree based on the heights of its left and right subtrees.
65
- * @param node - The parameter `node` is an AVLTreeNode object, which represents a node in an AVL tree.
66
- */
67
- protected _updateHeight(node: N): void;
68
- /**
69
- * The `_balancePath` function balances the AVL tree by performing appropriate rotations based on the balance factor of
70
- * each node in the path from the given node to the root.
71
- * @param node - The `node` parameter is an AVLTreeNode object, which represents a node in an AVL tree.
72
- */
73
- protected _balancePath(node: N): void;
74
- /**
75
- * The `_balanceLL` function performs a left-left rotation on an AVL tree to balance it.
76
- * @param A - The parameter A is an AVLTreeNode object.
77
- */
78
- protected _balanceLL(A: N): void;
79
- /**
80
- * The `_balanceLR` function performs a left-right rotation to balance an AVL tree.
81
- * @param A - A is an AVLTreeNode object.
82
- */
83
- protected _balanceLR(A: N): void;
84
- /**
85
- * The `_balanceRR` function performs a right-right rotation on an AVL tree to balance it.
86
- * @param A - The parameter A is an AVLTreeNode object.
87
- */
88
- protected _balanceRR(A: N): void;
89
- /**
90
- * The `_balanceRL` function performs a right-left rotation to balance an AVL tree.
91
- * @param A - A is an AVLTreeNode object.
92
- */
93
- protected _balanceRL(A: N): void;
94
- }
@@ -1,336 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AVLTree = exports.AVLTreeNode = void 0;
4
- /**
5
- * data-structure-typed
6
- *
7
- * @author Tyler Zeng
8
- * @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
9
- * @license MIT License
10
- */
11
- const bst_1 = require("./bst");
12
- class AVLTreeNode extends bst_1.BSTNode {
13
- constructor(key, val) {
14
- super(key, val);
15
- this.height = 0;
16
- }
17
- }
18
- exports.AVLTreeNode = AVLTreeNode;
19
- class AVLTree extends bst_1.BST {
20
- /**
21
- * This is a constructor function for an AVL tree data structure in TypeScript.
22
- * @param {AVLTreeOptions} [options] - The `options` parameter is an optional object that can be passed to the
23
- * constructor of the AVLTree class. It allows you to customize the behavior of the AVL tree by providing different
24
- * options.
25
- */
26
- constructor(options) {
27
- super(options);
28
- }
29
- /**
30
- * The `swapLocation` function swaps the location of two nodes in a binary tree.
31
- * @param {N} srcNode - The source node that you want to swap with the destination node.
32
- * @param {N} destNode - The `destNode` parameter represents the destination node where the values from `srcNode` will
33
- * be swapped to.
34
- * @returns The `destNode` is being returned.
35
- */
36
- swapLocation(srcNode, destNode) {
37
- const { key, val, height } = destNode;
38
- const tempNode = this.createNode(key, val);
39
- if (tempNode) {
40
- tempNode.height = height;
41
- destNode.key = srcNode.key;
42
- destNode.val = srcNode.val;
43
- destNode.height = srcNode.height;
44
- srcNode.key = tempNode.key;
45
- srcNode.val = tempNode.val;
46
- srcNode.height = tempNode.height;
47
- }
48
- return destNode;
49
- }
50
- /**
51
- * The function creates a new AVL tree node with the given key and value.
52
- * @param {BinaryTreeNodeKey} key - The `key` parameter is the identifier for the binary tree node. It is used to uniquely
53
- * identify each node in the tree.
54
- * @param [val] - The `val` parameter is an optional value that can be assigned to the node. It represents the value
55
- * that will be stored in the node.
56
- * @returns a new AVLTreeNode object with the specified key and value.
57
- */
58
- createNode(key, val) {
59
- return new AVLTreeNode(key, val);
60
- }
61
- /**
62
- * The function overrides the add method of a binary tree node and balances the tree after inserting a new node.
63
- * @param {BinaryTreeNodeKey} key - The `key` parameter is the identifier of the binary tree node that we want to add.
64
- * @param [val] - The `val` parameter is an optional value that can be assigned to the node being added. It is of type
65
- * `N['val']`, which means it should be of the same type as the `val` property of the nodes in the binary tree.
66
- * @returns The method is returning the inserted node, or null or undefined if the insertion was not successful.
67
- */
68
- add(key, val) {
69
- // TODO support node as a param
70
- const inserted = super.add(key, val);
71
- if (inserted)
72
- this._balancePath(inserted);
73
- return inserted;
74
- }
75
- /**
76
- * The function overrides the remove method of a binary tree and performs additional operations to balance the tree after
77
- * deletion.
78
- * @param {BinaryTreeNodeKey} key - The `key` parameter represents the identifier of the binary tree node that needs to be
79
- * removed.
80
- * @returns The method is returning an array of `BinaryTreeDeletedResult<N>` objects.
81
- */
82
- remove(key) {
83
- const deletedResults = super.remove(key);
84
- for (const { needBalanced } of deletedResults) {
85
- if (needBalanced) {
86
- this._balancePath(needBalanced);
87
- }
88
- }
89
- return deletedResults;
90
- }
91
- /**
92
- * The balance factor of a given AVL tree node is calculated by subtracting the height of its left subtree from the
93
- * height of its right subtree.
94
- * @param node - The parameter "node" is of type N, which represents a node in an AVL tree.
95
- * @returns The balance factor of the given AVL tree node.
96
- */
97
- _balanceFactor(node) {
98
- if (!node.right)
99
- // node has no right subtree
100
- return -node.height;
101
- else if (!node.left)
102
- // node has no left subtree
103
- return +node.height;
104
- else
105
- return node.right.height - node.left.height;
106
- }
107
- /**
108
- * The function updates the height of a node in an AVL tree based on the heights of its left and right subtrees.
109
- * @param node - The parameter `node` is an AVLTreeNode object, which represents a node in an AVL tree.
110
- */
111
- _updateHeight(node) {
112
- if (!node.left && !node.right)
113
- node.height = 0;
114
- else if (!node.left) {
115
- const rightHeight = node.right ? node.right.height : 0;
116
- node.height = 1 + rightHeight;
117
- }
118
- else if (!node.right)
119
- node.height = 1 + node.left.height;
120
- else
121
- node.height = 1 + Math.max(node.right.height, node.left.height);
122
- }
123
- /**
124
- * The `_balancePath` function balances the AVL tree by performing appropriate rotations based on the balance factor of
125
- * each node in the path from the given node to the root.
126
- * @param node - The `node` parameter is an AVLTreeNode object, which represents a node in an AVL tree.
127
- */
128
- _balancePath(node) {
129
- const path = this.getPathToRoot(node, false); // first O(log n) + O(log n)
130
- for (let i = 0; i < path.length; i++) {
131
- // second O(log n)
132
- const A = path[i];
133
- // Update Heights: After inserting a node, backtrack from the insertion point to the root node, updating the height of each node along the way.
134
- this._updateHeight(A); // first O(1)
135
- // Check Balance: Simultaneously with height updates, check if each node violates the balance property of an AVL tree.
136
- // Balance Restoration: If a balance issue is discovered after inserting a node, it requires balance restoration operations. Balance restoration includes four basic cases where rotation operations need to be performed to fix the balance:
137
- switch (this._balanceFactor(A) // second O(1)
138
- ) {
139
- case -2:
140
- if (A && A.left) {
141
- if (this._balanceFactor(A.left) <= 0) {
142
- // second O(1)
143
- // Left Rotation (LL Rotation): When the inserted node is in the left subtree of the left subtree, causing an imbalance.
144
- this._balanceLL(A);
145
- }
146
- else {
147
- // Left-Right Rotation (LR Rotation): When the inserted node is in the right subtree of the left subtree, causing an imbalance.
148
- this._balanceLR(A);
149
- }
150
- }
151
- break;
152
- case +2:
153
- if (A && A.right) {
154
- if (this._balanceFactor(A.right) >= 0) {
155
- // Right Rotation (RR Rotation): When the inserted node is in the right subtree of the right subtree, causing an imbalance.
156
- this._balanceRR(A);
157
- }
158
- else {
159
- // Right-Left Rotation (RL Rotation): When the inserted node is in the left subtree of the right subtree, causing an imbalance.
160
- this._balanceRL(A);
161
- }
162
- }
163
- }
164
- // TODO So far, no sure if this is necessary that Recursive Repair: Once rotation operations are executed, it may cause imbalance issues at higher levels of the tree. Therefore, you need to recursively check and repair imbalance problems upwards until you reach the root node.
165
- }
166
- }
167
- /**
168
- * The `_balanceLL` function performs a left-left rotation on an AVL tree to balance it.
169
- * @param A - The parameter A is an AVLTreeNode object.
170
- */
171
- _balanceLL(A) {
172
- const parentOfA = A.parent;
173
- const B = A.left;
174
- A.parent = B;
175
- if (B && B.right) {
176
- B.right.parent = A;
177
- }
178
- if (B)
179
- B.parent = parentOfA;
180
- if (A === this.root) {
181
- if (B)
182
- this._setRoot(B);
183
- }
184
- else {
185
- if ((parentOfA === null || parentOfA === void 0 ? void 0 : parentOfA.left) === A) {
186
- parentOfA.left = B;
187
- }
188
- else {
189
- if (parentOfA)
190
- parentOfA.right = B;
191
- }
192
- }
193
- if (B) {
194
- A.left = B.right;
195
- B.right = A;
196
- }
197
- this._updateHeight(A);
198
- if (B)
199
- this._updateHeight(B);
200
- }
201
- /**
202
- * The `_balanceLR` function performs a left-right rotation to balance an AVL tree.
203
- * @param A - A is an AVLTreeNode object.
204
- */
205
- _balanceLR(A) {
206
- const parentOfA = A.parent;
207
- const B = A.left;
208
- let C = null;
209
- if (B) {
210
- C = B.right;
211
- }
212
- if (A)
213
- A.parent = C;
214
- if (B)
215
- B.parent = C;
216
- if (C) {
217
- if (C.left) {
218
- C.left.parent = B;
219
- }
220
- if (C.right) {
221
- C.right.parent = A;
222
- }
223
- C.parent = parentOfA;
224
- }
225
- if (A === this.root) {
226
- if (C)
227
- this._setRoot(C);
228
- }
229
- else {
230
- if (parentOfA) {
231
- if (parentOfA.left === A) {
232
- parentOfA.left = C;
233
- }
234
- else {
235
- parentOfA.right = C;
236
- }
237
- }
238
- }
239
- if (C) {
240
- A.left = C.right;
241
- if (B)
242
- B.right = C.left;
243
- C.left = B;
244
- C.right = A;
245
- }
246
- this._updateHeight(A);
247
- B && this._updateHeight(B);
248
- C && this._updateHeight(C);
249
- }
250
- /**
251
- * The `_balanceRR` function performs a right-right rotation on an AVL tree to balance it.
252
- * @param A - The parameter A is an AVLTreeNode object.
253
- */
254
- _balanceRR(A) {
255
- const parentOfA = A.parent;
256
- const B = A.right;
257
- A.parent = B;
258
- if (B) {
259
- if (B.left) {
260
- B.left.parent = A;
261
- }
262
- B.parent = parentOfA;
263
- }
264
- if (A === this.root) {
265
- if (B)
266
- this._setRoot(B);
267
- }
268
- else {
269
- if (parentOfA) {
270
- if (parentOfA.left === A) {
271
- parentOfA.left = B;
272
- }
273
- else {
274
- parentOfA.right = B;
275
- }
276
- }
277
- }
278
- if (B) {
279
- A.right = B.left;
280
- B.left = A;
281
- }
282
- this._updateHeight(A);
283
- B && this._updateHeight(B);
284
- }
285
- /**
286
- * The `_balanceRL` function performs a right-left rotation to balance an AVL tree.
287
- * @param A - A is an AVLTreeNode object.
288
- */
289
- _balanceRL(A) {
290
- const parentOfA = A.parent;
291
- const B = A.right;
292
- let C = null;
293
- if (B) {
294
- C = B.left;
295
- }
296
- A.parent = C;
297
- if (B)
298
- B.parent = C;
299
- if (C) {
300
- if (C.left) {
301
- C.left.parent = A;
302
- }
303
- if (C.right) {
304
- C.right.parent = B;
305
- }
306
- C.parent = parentOfA;
307
- }
308
- if (A === this.root) {
309
- if (C)
310
- this._setRoot(C);
311
- }
312
- else {
313
- if (parentOfA) {
314
- if (parentOfA.left === A) {
315
- parentOfA.left = C;
316
- }
317
- else {
318
- parentOfA.right = C;
319
- }
320
- }
321
- }
322
- if (C)
323
- A.right = C.left;
324
- if (B && C)
325
- B.left = C.right;
326
- if (C)
327
- C.left = A;
328
- if (C)
329
- C.right = B;
330
- this._updateHeight(A);
331
- B && this._updateHeight(B);
332
- C && this._updateHeight(C);
333
- }
334
- }
335
- exports.AVLTree = AVLTree;
336
- //# sourceMappingURL=avl-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"avl-tree.js","sourceRoot":"","sources":["../../../src/data-structures/binary-tree/avl-tree.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare class BTree {
2
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BTree = void 0;
4
- class BTree {
5
- }
6
- exports.BTree = BTree;
7
- //# sourceMappingURL=b-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"b-tree.js","sourceRoot":"","sources":["../../../src/data-structures/binary-tree/b-tree.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;CAAG;AAArB,sBAAqB"}
@@ -1,46 +0,0 @@
1
- /**
2
- * data-structure-typed
3
- *
4
- * @author Tyler Zeng
5
- * @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
6
- * @license MIT License
7
- */
8
- export declare class BinaryIndexedTree {
9
- /**
10
- * The constructor initializes an array with a specified length and fills it with zeros.
11
- * @param {number} n - The parameter `n` represents the size of the array that will be used to store the sum tree. The
12
- * sum tree is a binary tree data structure used to efficiently calculate the sum of a range of elements in an array.
13
- * The size of the sum tree array is `n + 1` because
14
- */
15
- constructor(n: number);
16
- private _sumTree;
17
- get sumTree(): number[];
18
- static lowBit(x: number): number;
19
- /**
20
- * The update function updates the values in a binary indexed tree by adding a delta value to the specified index and
21
- * its ancestors.
22
- * @param {number} i - The parameter `i` represents the index of the element in the `_sumTree` array that needs to be
23
- * updated.
24
- * @param {number} delta - The "delta" parameter represents the change in value that needs to be added to the element
25
- * at index "i" in the "_sumTree" array.
26
- */
27
- update(i: number, delta: number): void;
28
- /**
29
- * The function calculates the prefix sum of an array using a binary indexed tree.
30
- * @param {number} i - The parameter "i" in the function "getPrefixSum" represents the index of the element in the
31
- * array for which we want to calculate the prefix sum.
32
- * @returns The function `getPrefixSum` returns the prefix sum of the elements in the binary indexed tree up to index
33
- * `i`.
34
- */
35
- getPrefixSum(i: number): number;
36
- /**
37
- * The function `getRangeSum` calculates the sum of a range of numbers in an array.
38
- * @param {number} start - The start parameter is the starting index of the range for which we want to calculate the
39
- * sum.
40
- * @param {number} end - The "end" parameter represents the ending index of the range for which we want to calculate
41
- * the sum.
42
- * @returns the sum of the elements in the range specified by the start and end indices.
43
- */
44
- getRangeSum(start: number, end: number): number;
45
- protected _setSumTree(value: number[]): void;
46
- }
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BinaryIndexedTree = void 0;
4
- /**
5
- * data-structure-typed
6
- *
7
- * @author Tyler Zeng
8
- * @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
9
- * @license MIT License
10
- */
11
- class BinaryIndexedTree {
12
- /**
13
- * The constructor initializes an array with a specified length and fills it with zeros.
14
- * @param {number} n - The parameter `n` represents the size of the array that will be used to store the sum tree. The
15
- * sum tree is a binary tree data structure used to efficiently calculate the sum of a range of elements in an array.
16
- * The size of the sum tree array is `n + 1` because
17
- */
18
- constructor(n) {
19
- this._sumTree = new Array(n + 1).fill(0);
20
- }
21
- get sumTree() {
22
- return this._sumTree;
23
- }
24
- static lowBit(x) {
25
- return x & -x;
26
- }
27
- /**
28
- * The update function updates the values in a binary indexed tree by adding a delta value to the specified index and
29
- * its ancestors.
30
- * @param {number} i - The parameter `i` represents the index of the element in the `_sumTree` array that needs to be
31
- * updated.
32
- * @param {number} delta - The "delta" parameter represents the change in value that needs to be added to the element
33
- * at index "i" in the "_sumTree" array.
34
- */
35
- update(i, delta) {
36
- while (i < this._sumTree.length) {
37
- this._sumTree[i] += delta;
38
- i += BinaryIndexedTree.lowBit(i);
39
- }
40
- }
41
- /**
42
- * The function calculates the prefix sum of an array using a binary indexed tree.
43
- * @param {number} i - The parameter "i" in the function "getPrefixSum" represents the index of the element in the
44
- * array for which we want to calculate the prefix sum.
45
- * @returns The function `getPrefixSum` returns the prefix sum of the elements in the binary indexed tree up to index
46
- * `i`.
47
- */
48
- getPrefixSum(i) {
49
- let sum = 0;
50
- while (i > 0) {
51
- sum += this._sumTree[i];
52
- i -= BinaryIndexedTree.lowBit(i);
53
- }
54
- return sum;
55
- }
56
- /**
57
- * The function `getRangeSum` calculates the sum of a range of numbers in an array.
58
- * @param {number} start - The start parameter is the starting index of the range for which we want to calculate the
59
- * sum.
60
- * @param {number} end - The "end" parameter represents the ending index of the range for which we want to calculate
61
- * the sum.
62
- * @returns the sum of the elements in the range specified by the start and end indices.
63
- */
64
- getRangeSum(start, end) {
65
- if (!(0 <= start && start <= end && end <= this._sumTree.length))
66
- throw 'Index out of bounds';
67
- return this.getPrefixSum(end) - this.getPrefixSum(start);
68
- }
69
- _setSumTree(value) {
70
- this._sumTree = value;
71
- }
72
- }
73
- exports.BinaryIndexedTree = BinaryIndexedTree;
74
- //# sourceMappingURL=binary-indexed-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"binary-indexed-tree.js","sourceRoot":"","sources":["../../../src/data-structures/binary-tree/binary-indexed-tree.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,iBAAiB;IAC5B;;;;;OAKG;IACH,YAAY,CAAS;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAID,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,CAAS;QACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,CAAS,EAAE,KAAa;QAC7B,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;YAC1B,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClC;IACH,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,CAAS;QACpB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,EAAE;YACZ,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,KAAa,EAAE,GAAW;QACpC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,qBAAqB,CAAC;QAC9F,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAES,WAAW,CAAC,KAAe;QACnC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;CACF;AApED,8CAoEC"}