data-structure-typed 1.38.0 → 1.38.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{data-structures → cjs/data-structures}/binary-tree/avl-tree.js +22 -22
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +1 -0
- package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.js.map +1 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/binary-tree.js +32 -32
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +1 -0
- package/dist/cjs/data-structures/binary-tree/bst.js.map +1 -0
- package/dist/cjs/data-structures/binary-tree/index.js.map +1 -0
- package/dist/cjs/data-structures/binary-tree/rb-tree.js.map +1 -0
- package/dist/cjs/data-structures/binary-tree/segment-tree.js.map +1 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/tree-multiset.js +23 -23
- package/dist/cjs/data-structures/binary-tree/tree-multiset.js.map +1 -0
- package/dist/cjs/data-structures/graph/abstract-graph.js.map +1 -0
- package/dist/cjs/data-structures/graph/directed-graph.js.map +1 -0
- package/dist/cjs/data-structures/graph/index.js.map +1 -0
- package/dist/cjs/data-structures/graph/map-graph.js.map +1 -0
- package/dist/cjs/data-structures/graph/undirected-graph.js.map +1 -0
- package/dist/cjs/data-structures/hash/coordinate-map.js.map +1 -0
- package/dist/cjs/data-structures/hash/coordinate-set.js.map +1 -0
- package/dist/{data-structures → cjs/data-structures}/hash/hash-map.js +59 -59
- package/dist/cjs/data-structures/hash/hash-map.js.map +1 -0
- package/dist/{data-structures → cjs/data-structures}/hash/hash-table.js +99 -99
- package/dist/cjs/data-structures/hash/hash-table.js.map +1 -0
- package/dist/cjs/data-structures/hash/index.js.map +1 -0
- package/dist/cjs/data-structures/hash/tree-map.js.map +1 -0
- package/dist/cjs/data-structures/hash/tree-set.js.map +1 -0
- package/dist/{data-structures → cjs/data-structures}/heap/heap.js +167 -167
- package/dist/cjs/data-structures/heap/heap.js.map +1 -0
- package/dist/cjs/data-structures/heap/index.js.map +1 -0
- package/dist/cjs/data-structures/heap/max-heap.js.map +1 -0
- package/dist/cjs/data-structures/heap/min-heap.js.map +1 -0
- package/dist/cjs/data-structures/index.js.map +1 -0
- package/dist/{data-structures → cjs/data-structures}/linked-list/doubly-linked-list.js +3 -3
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +1 -0
- package/dist/cjs/data-structures/linked-list/index.js.map +1 -0
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +1 -0
- package/dist/{data-structures → cjs/data-structures}/linked-list/skip-linked-list.js +34 -34
- package/dist/cjs/data-structures/linked-list/skip-linked-list.js.map +1 -0
- package/dist/cjs/data-structures/matrix/index.js.map +1 -0
- package/dist/cjs/data-structures/matrix/matrix.js.map +1 -0
- package/{lib → dist/cjs}/data-structures/matrix/matrix2d.js +21 -13
- package/dist/cjs/data-structures/matrix/matrix2d.js.map +1 -0
- package/dist/cjs/data-structures/matrix/navigator.js.map +1 -0
- package/dist/cjs/data-structures/matrix/vector2d.js.map +1 -0
- package/dist/cjs/data-structures/priority-queue/index.js.map +1 -0
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.js.map +1 -0
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.js.map +1 -0
- package/dist/cjs/data-structures/priority-queue/priority-queue.js.map +1 -0
- package/dist/cjs/data-structures/queue/deque.js.map +1 -0
- package/dist/cjs/data-structures/queue/index.js.map +1 -0
- package/dist/cjs/data-structures/queue/queue.js.map +1 -0
- package/dist/cjs/data-structures/stack/index.js.map +1 -0
- package/dist/cjs/data-structures/stack/stack.js.map +1 -0
- package/dist/cjs/data-structures/tree/index.js.map +1 -0
- package/dist/cjs/data-structures/tree/tree.js.map +1 -0
- package/dist/cjs/data-structures/trie/index.js.map +1 -0
- package/dist/{data-structures → cjs/data-structures}/trie/trie.js +6 -6
- package/dist/cjs/data-structures/trie/trie.js.map +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/interfaces/binary-tree.js.map +1 -0
- package/dist/cjs/interfaces/doubly-linked-list.js.map +1 -0
- package/dist/{interfaces → cjs/interfaces}/graph.js.map +1 -1
- package/dist/{interfaces → cjs/interfaces}/heap.js.map +1 -1
- package/dist/cjs/interfaces/index.js.map +1 -0
- package/dist/{interfaces → cjs/interfaces}/navigator.js.map +1 -1
- package/dist/cjs/interfaces/priority-queue.js.map +1 -0
- package/dist/cjs/interfaces/segment-tree.js.map +1 -0
- package/dist/cjs/interfaces/singly-linked-list.js.map +1 -0
- package/dist/cjs/types/data-structures/binary-tree/avl-tree.js.map +1 -0
- package/dist/cjs/types/data-structures/binary-tree/binary-indexed-tree.js.map +1 -0
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.js.map +1 -0
- package/dist/cjs/types/data-structures/binary-tree/bst.js.map +1 -0
- package/dist/cjs/types/data-structures/binary-tree/index.js.map +1 -0
- package/dist/cjs/types/data-structures/binary-tree/rb-tree.js.map +1 -0
- package/dist/cjs/types/data-structures/binary-tree/segment-tree.js.map +1 -0
- package/dist/cjs/types/data-structures/binary-tree/tree-multiset.js.map +1 -0
- package/dist/cjs/types/data-structures/graph/abstract-graph.js.map +1 -0
- package/dist/cjs/types/data-structures/graph/directed-graph.js.map +1 -0
- package/dist/cjs/types/data-structures/graph/index.js.map +1 -0
- package/dist/cjs/types/data-structures/graph/map-graph.js.map +1 -0
- package/dist/cjs/types/data-structures/graph/undirected-graph.js.map +1 -0
- package/dist/cjs/types/data-structures/hash/coordinate-map.js.map +1 -0
- package/dist/cjs/types/data-structures/hash/coordinate-set.js.map +1 -0
- package/dist/cjs/types/data-structures/hash/hash-map.js.map +1 -0
- package/dist/cjs/types/data-structures/hash/hash-table.js.map +1 -0
- package/dist/cjs/types/data-structures/hash/index.js.map +1 -0
- package/dist/cjs/types/data-structures/hash/tree-map.js.map +1 -0
- package/dist/cjs/types/data-structures/hash/tree-set.js.map +1 -0
- package/dist/cjs/types/data-structures/heap/heap.js.map +1 -0
- package/dist/cjs/types/data-structures/heap/index.js.map +1 -0
- package/dist/cjs/types/data-structures/heap/max-heap.js.map +1 -0
- package/dist/cjs/types/data-structures/heap/min-heap.js.map +1 -0
- package/dist/cjs/types/data-structures/index.js.map +1 -0
- package/dist/cjs/types/data-structures/linked-list/doubly-linked-list.js.map +1 -0
- package/dist/cjs/types/data-structures/linked-list/index.js.map +1 -0
- package/dist/cjs/types/data-structures/linked-list/singly-linked-list.js.map +1 -0
- package/dist/cjs/types/data-structures/linked-list/skip-linked-list.js.map +1 -0
- package/dist/cjs/types/data-structures/matrix/index.js.map +1 -0
- package/dist/cjs/types/data-structures/matrix/matrix.js.map +1 -0
- package/dist/cjs/types/data-structures/matrix/matrix2d.js.map +1 -0
- package/dist/cjs/types/data-structures/matrix/navigator.js.map +1 -0
- package/dist/cjs/types/data-structures/matrix/vector2d.js.map +1 -0
- package/dist/cjs/types/data-structures/priority-queue/index.js.map +1 -0
- package/dist/cjs/types/data-structures/priority-queue/max-priority-queue.js.map +1 -0
- package/dist/cjs/types/data-structures/priority-queue/min-priority-queue.js.map +1 -0
- package/dist/cjs/types/data-structures/priority-queue/priority-queue.js.map +1 -0
- package/dist/cjs/types/data-structures/queue/deque.js.map +1 -0
- package/dist/cjs/types/data-structures/queue/index.js.map +1 -0
- package/dist/cjs/types/data-structures/queue/queue.js.map +1 -0
- package/dist/cjs/types/data-structures/stack/index.js.map +1 -0
- package/dist/cjs/types/data-structures/stack/stack.js.map +1 -0
- package/dist/cjs/types/data-structures/tree/index.js.map +1 -0
- package/dist/cjs/types/data-structures/tree/tree.js.map +1 -0
- package/dist/cjs/types/data-structures/trie/index.js.map +1 -0
- package/dist/cjs/types/data-structures/trie/trie.js.map +1 -0
- package/dist/cjs/types/helpers.js.map +1 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/cjs/types/utils/index.js.map +1 -0
- package/dist/{types → cjs/types}/utils/utils.js.map +1 -1
- package/dist/cjs/types/utils/validate-type.js.map +1 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/utils.js.map +1 -0
- package/{lib → dist/mjs}/data-structures/binary-tree/avl-tree.js +32 -26
- package/{lib → dist/mjs}/data-structures/binary-tree/binary-indexed-tree.js +12 -3
- package/{lib → dist/mjs}/data-structures/binary-tree/binary-tree.js +90 -73
- package/{lib → dist/mjs}/data-structures/binary-tree/bst.js +42 -40
- package/dist/mjs/data-structures/binary-tree/index.js +23 -0
- package/dist/mjs/data-structures/binary-tree/rb-tree.js +28 -0
- package/{lib → dist/mjs}/data-structures/binary-tree/segment-tree.js +17 -10
- package/{lib → dist/mjs}/data-structures/binary-tree/tree-multiset.js +42 -36
- package/{lib → dist/mjs}/data-structures/graph/abstract-graph.js +29 -24
- package/{lib → dist/mjs}/data-structures/graph/directed-graph.js +22 -14
- package/dist/mjs/data-structures/graph/index.js +20 -0
- package/{lib → dist/mjs}/data-structures/graph/map-graph.js +14 -5
- package/{lib → dist/mjs}/data-structures/graph/undirected-graph.js +19 -13
- package/{lib → dist/mjs}/data-structures/hash/coordinate-map.js +6 -2
- package/{lib → dist/mjs}/data-structures/hash/coordinate-set.js +6 -2
- package/{lib → dist/mjs}/data-structures/hash/hash-map.js +70 -60
- package/{lib → dist/mjs}/data-structures/hash/hash-table.js +115 -103
- package/dist/mjs/data-structures/hash/index.js +22 -0
- package/dist/mjs/data-structures/hash/tree-map.js +6 -0
- package/dist/mjs/data-structures/hash/tree-set.js +6 -0
- package/{lib → dist/mjs}/data-structures/heap/heap.js +188 -172
- package/dist/mjs/data-structures/heap/index.js +19 -0
- package/{lib → dist/mjs}/data-structures/heap/max-heap.js +6 -2
- package/{lib → dist/mjs}/data-structures/heap/min-heap.js +6 -2
- package/dist/mjs/data-structures/index.js +27 -0
- package/{lib → dist/mjs}/data-structures/linked-list/doubly-linked-list.js +18 -9
- package/dist/mjs/data-structures/linked-list/index.js +19 -0
- package/{lib → dist/mjs}/data-structures/linked-list/singly-linked-list.js +12 -2
- package/{lib → dist/mjs}/data-structures/linked-list/skip-linked-list.js +48 -36
- package/dist/mjs/data-structures/matrix/index.js +20 -0
- package/{lib → dist/mjs}/data-structures/matrix/matrix.js +6 -1
- package/dist/{data-structures → mjs/data-structures}/matrix/matrix2d.js +14 -11
- package/{lib → dist/mjs}/data-structures/matrix/navigator.js +14 -2
- package/{lib → dist/mjs}/data-structures/matrix/vector2d.js +9 -2
- package/dist/mjs/data-structures/priority-queue/index.js +19 -0
- package/{lib → dist/mjs}/data-structures/priority-queue/max-priority-queue.js +6 -2
- package/{lib → dist/mjs}/data-structures/priority-queue/min-priority-queue.js +6 -2
- package/dist/mjs/data-structures/priority-queue/priority-queue.js +17 -0
- package/{lib → dist/mjs}/data-structures/queue/deque.js +21 -22
- package/dist/mjs/data-structures/queue/index.js +18 -0
- package/{lib → dist/mjs}/data-structures/queue/queue.js +11 -5
- package/dist/mjs/data-structures/stack/index.js +17 -0
- package/{lib → dist/mjs}/data-structures/stack/stack.js +6 -1
- package/dist/mjs/data-structures/tree/index.js +17 -0
- package/{lib → dist/mjs}/data-structures/tree/tree.js +8 -1
- package/dist/mjs/data-structures/trie/index.js +17 -0
- package/{lib → dist/mjs}/data-structures/trie/trie.js +18 -8
- package/dist/mjs/index.js +20 -0
- package/dist/mjs/interfaces/binary-tree.js +2 -0
- package/dist/mjs/interfaces/doubly-linked-list.js +2 -0
- package/dist/mjs/interfaces/graph.js +2 -0
- package/dist/mjs/interfaces/heap.js +2 -0
- package/dist/mjs/interfaces/index.js +24 -0
- package/dist/mjs/interfaces/navigator.js +2 -0
- package/dist/mjs/interfaces/priority-queue.js +2 -0
- package/dist/mjs/interfaces/segment-tree.js +2 -0
- package/dist/mjs/interfaces/singly-linked-list.js +2 -0
- package/dist/mjs/types/data-structures/binary-tree/avl-tree.js +2 -0
- package/dist/mjs/types/data-structures/binary-tree/binary-indexed-tree.js +2 -0
- package/{lib → dist/mjs}/types/data-structures/binary-tree/binary-tree.js +7 -4
- package/dist/mjs/types/data-structures/binary-tree/bst.js +2 -0
- package/dist/mjs/types/data-structures/binary-tree/index.js +22 -0
- package/dist/mjs/types/data-structures/binary-tree/rb-tree.js +8 -0
- package/dist/mjs/types/data-structures/binary-tree/segment-tree.js +2 -0
- package/dist/mjs/types/data-structures/binary-tree/tree-multiset.js +2 -0
- package/dist/mjs/types/data-structures/graph/abstract-graph.js +2 -0
- package/dist/mjs/types/data-structures/graph/directed-graph.js +9 -0
- package/dist/mjs/types/data-structures/graph/index.js +19 -0
- package/dist/mjs/types/data-structures/graph/map-graph.js +2 -0
- package/dist/mjs/types/data-structures/graph/undirected-graph.js +2 -0
- package/dist/mjs/types/data-structures/hash/coordinate-map.js +2 -0
- package/dist/mjs/types/data-structures/hash/coordinate-set.js +2 -0
- package/dist/mjs/types/data-structures/hash/hash-map.js +2 -0
- package/dist/mjs/types/data-structures/hash/hash-table.js +2 -0
- package/dist/mjs/types/data-structures/hash/index.js +2 -0
- package/dist/mjs/types/data-structures/hash/tree-map.js +2 -0
- package/dist/mjs/types/data-structures/hash/tree-set.js +2 -0
- package/dist/mjs/types/data-structures/heap/heap.js +2 -0
- package/dist/mjs/types/data-structures/heap/index.js +17 -0
- package/dist/mjs/types/data-structures/heap/max-heap.js +2 -0
- package/dist/mjs/types/data-structures/heap/min-heap.js +2 -0
- package/dist/mjs/types/data-structures/index.js +27 -0
- package/dist/mjs/types/data-structures/linked-list/doubly-linked-list.js +2 -0
- package/dist/mjs/types/data-structures/linked-list/index.js +18 -0
- package/dist/mjs/types/data-structures/linked-list/singly-linked-list.js +2 -0
- package/dist/mjs/types/data-structures/linked-list/skip-linked-list.js +2 -0
- package/dist/mjs/types/data-structures/matrix/index.js +17 -0
- package/dist/mjs/types/data-structures/matrix/matrix.js +2 -0
- package/dist/mjs/types/data-structures/matrix/matrix2d.js +2 -0
- package/dist/mjs/types/data-structures/matrix/navigator.js +2 -0
- package/dist/mjs/types/data-structures/matrix/vector2d.js +2 -0
- package/dist/mjs/types/data-structures/priority-queue/index.js +19 -0
- package/dist/mjs/types/data-structures/priority-queue/max-priority-queue.js +2 -0
- package/dist/mjs/types/data-structures/priority-queue/min-priority-queue.js +2 -0
- package/dist/mjs/types/data-structures/priority-queue/priority-queue.js +2 -0
- package/dist/mjs/types/data-structures/queue/deque.js +2 -0
- package/dist/mjs/types/data-structures/queue/index.js +18 -0
- package/dist/mjs/types/data-structures/queue/queue.js +2 -0
- package/dist/mjs/types/data-structures/stack/index.js +17 -0
- package/dist/mjs/types/data-structures/stack/stack.js +2 -0
- package/dist/mjs/types/data-structures/tree/index.js +17 -0
- package/dist/mjs/types/data-structures/tree/tree.js +2 -0
- package/dist/mjs/types/data-structures/trie/index.js +17 -0
- package/dist/mjs/types/data-structures/trie/trie.js +2 -0
- package/dist/mjs/types/helpers.js +9 -0
- package/dist/mjs/types/index.js +19 -0
- package/dist/mjs/types/utils/index.js +18 -0
- package/dist/mjs/types/utils/utils.js +2 -0
- package/dist/mjs/types/utils/validate-type.js +2 -0
- package/dist/mjs/utils/index.js +17 -0
- package/dist/mjs/utils/utils.js +64 -0
- package/dist/umd/index.global.js +27 -0
- package/dist/umd/index.global.js.map +1 -0
- package/package.json +21 -23
- package/src/data-structures/binary-tree/avl-tree.ts +28 -28
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +1 -1
- package/src/data-structures/binary-tree/binary-tree.ts +57 -57
- package/src/data-structures/binary-tree/bst.ts +4 -0
- package/src/data-structures/binary-tree/rb-tree.ts +2 -2
- package/src/data-structures/binary-tree/tree-multiset.ts +30 -31
- package/src/data-structures/graph/abstract-graph.ts +10 -11
- package/src/data-structures/graph/directed-graph.ts +1 -2
- package/src/data-structures/graph/undirected-graph.ts +4 -5
- package/src/data-structures/hash/hash-map.ts +82 -76
- package/src/data-structures/hash/hash-table.ts +112 -109
- package/src/data-structures/hash/tree-map.ts +2 -1
- package/src/data-structures/hash/tree-set.ts +2 -1
- package/src/data-structures/heap/heap.ts +182 -181
- package/src/data-structures/linked-list/doubly-linked-list.ts +4 -4
- package/src/data-structures/linked-list/singly-linked-list.ts +1 -1
- package/src/data-structures/linked-list/skip-linked-list.ts +45 -38
- package/src/data-structures/matrix/matrix.ts +1 -1
- package/src/data-structures/matrix/matrix2d.ts +10 -10
- package/src/data-structures/matrix/vector2d.ts +2 -1
- package/src/data-structures/queue/deque.ts +5 -4
- package/src/data-structures/queue/queue.ts +1 -1
- package/src/data-structures/trie/trie.ts +9 -9
- package/src/types/data-structures/matrix/navigator.ts +1 -1
- package/src/types/helpers.ts +5 -1
- package/src/types/utils/utils.ts +1 -1
- package/src/types/utils/validate-type.ts +2 -2
- package/test/integration/bst.test.ts +1 -1
- package/test/integration/index.html +1 -2
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +1 -1
- package/test/unit/data-structures/binary-tree/binary-index-tree.test.ts +3 -2
- package/test/unit/data-structures/binary-tree/bst.test.ts +3 -3
- package/test/unit/data-structures/binary-tree/overall.test.ts +1 -1
- package/test/unit/data-structures/binary-tree/tree-multiset.test.ts +1 -1
- package/test/unit/data-structures/hash/hash-table.test.ts +1 -1
- package/test/unit/data-structures/heap/heap.test.ts +2 -2
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +1 -1
- package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +2 -2
- package/test/unit/data-structures/matrix/navigator.test.ts +1 -1
- package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +2 -2
- package/test/unit/data-structures/queue/deque.test.ts +1 -1
- package/test/unit/data-structures/queue/queue.test.ts +1 -1
- package/test/utils/big-o.ts +1 -1
- package/tsconfig-base.json +27 -0
- package/tsconfig-cjs.json +9 -0
- package/tsup.config.js +11 -0
- package/umd/bundle.min.js +1 -1
- package/umd/bundle.min.js.map +1 -1
- package/dist/data-structures/binary-tree/avl-tree.js.map +0 -1
- package/dist/data-structures/binary-tree/binary-indexed-tree.js.map +0 -1
- package/dist/data-structures/binary-tree/binary-tree.js.map +0 -1
- package/dist/data-structures/binary-tree/bst.js.map +0 -1
- package/dist/data-structures/binary-tree/index.js.map +0 -1
- package/dist/data-structures/binary-tree/rb-tree.js.map +0 -1
- package/dist/data-structures/binary-tree/segment-tree.js.map +0 -1
- package/dist/data-structures/binary-tree/tree-multiset.js.map +0 -1
- package/dist/data-structures/graph/abstract-graph.js.map +0 -1
- package/dist/data-structures/graph/directed-graph.js.map +0 -1
- package/dist/data-structures/graph/index.js.map +0 -1
- package/dist/data-structures/graph/map-graph.js.map +0 -1
- package/dist/data-structures/graph/undirected-graph.js.map +0 -1
- package/dist/data-structures/hash/coordinate-map.js.map +0 -1
- package/dist/data-structures/hash/coordinate-set.js.map +0 -1
- package/dist/data-structures/hash/hash-map.js.map +0 -1
- package/dist/data-structures/hash/hash-table.js.map +0 -1
- package/dist/data-structures/hash/index.js.map +0 -1
- package/dist/data-structures/hash/tree-map.js.map +0 -1
- package/dist/data-structures/hash/tree-set.js.map +0 -1
- package/dist/data-structures/heap/heap.js.map +0 -1
- package/dist/data-structures/heap/index.js.map +0 -1
- package/dist/data-structures/heap/max-heap.js.map +0 -1
- package/dist/data-structures/heap/min-heap.js.map +0 -1
- package/dist/data-structures/index.js.map +0 -1
- package/dist/data-structures/linked-list/doubly-linked-list.js.map +0 -1
- package/dist/data-structures/linked-list/index.js.map +0 -1
- package/dist/data-structures/linked-list/singly-linked-list.js.map +0 -1
- package/dist/data-structures/linked-list/skip-linked-list.js.map +0 -1
- package/dist/data-structures/matrix/index.js.map +0 -1
- package/dist/data-structures/matrix/matrix.js.map +0 -1
- package/dist/data-structures/matrix/matrix2d.js.map +0 -1
- package/dist/data-structures/matrix/navigator.js.map +0 -1
- package/dist/data-structures/matrix/vector2d.js.map +0 -1
- package/dist/data-structures/priority-queue/index.js.map +0 -1
- package/dist/data-structures/priority-queue/max-priority-queue.js.map +0 -1
- package/dist/data-structures/priority-queue/min-priority-queue.js.map +0 -1
- package/dist/data-structures/priority-queue/priority-queue.js.map +0 -1
- package/dist/data-structures/queue/deque.js.map +0 -1
- package/dist/data-structures/queue/index.js.map +0 -1
- package/dist/data-structures/queue/queue.js.map +0 -1
- package/dist/data-structures/stack/index.js.map +0 -1
- package/dist/data-structures/stack/stack.js.map +0 -1
- package/dist/data-structures/tree/index.js.map +0 -1
- package/dist/data-structures/tree/tree.js.map +0 -1
- package/dist/data-structures/trie/index.js.map +0 -1
- package/dist/data-structures/trie/trie.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/interfaces/binary-tree.js.map +0 -1
- package/dist/interfaces/doubly-linked-list.js.map +0 -1
- package/dist/interfaces/index.js.map +0 -1
- package/dist/interfaces/priority-queue.js.map +0 -1
- package/dist/interfaces/segment-tree.js.map +0 -1
- package/dist/interfaces/singly-linked-list.js.map +0 -1
- package/dist/types/data-structures/binary-tree/avl-tree.js.map +0 -1
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.js.map +0 -1
- package/dist/types/data-structures/binary-tree/binary-tree.js.map +0 -1
- package/dist/types/data-structures/binary-tree/bst.js.map +0 -1
- package/dist/types/data-structures/binary-tree/index.js.map +0 -1
- package/dist/types/data-structures/binary-tree/rb-tree.js.map +0 -1
- package/dist/types/data-structures/binary-tree/segment-tree.js.map +0 -1
- package/dist/types/data-structures/binary-tree/tree-multiset.js.map +0 -1
- package/dist/types/data-structures/graph/abstract-graph.js.map +0 -1
- package/dist/types/data-structures/graph/directed-graph.js.map +0 -1
- package/dist/types/data-structures/graph/index.js.map +0 -1
- package/dist/types/data-structures/graph/map-graph.js.map +0 -1
- package/dist/types/data-structures/graph/undirected-graph.js.map +0 -1
- package/dist/types/data-structures/hash/coordinate-map.js.map +0 -1
- package/dist/types/data-structures/hash/coordinate-set.js.map +0 -1
- package/dist/types/data-structures/hash/hash-map.js.map +0 -1
- package/dist/types/data-structures/hash/hash-table.js.map +0 -1
- package/dist/types/data-structures/hash/index.js.map +0 -1
- package/dist/types/data-structures/hash/tree-map.js.map +0 -1
- package/dist/types/data-structures/hash/tree-set.js.map +0 -1
- package/dist/types/data-structures/heap/heap.js.map +0 -1
- package/dist/types/data-structures/heap/index.js.map +0 -1
- package/dist/types/data-structures/heap/max-heap.js.map +0 -1
- package/dist/types/data-structures/heap/min-heap.js.map +0 -1
- package/dist/types/data-structures/index.js.map +0 -1
- package/dist/types/data-structures/linked-list/doubly-linked-list.js.map +0 -1
- package/dist/types/data-structures/linked-list/index.js.map +0 -1
- package/dist/types/data-structures/linked-list/singly-linked-list.js.map +0 -1
- package/dist/types/data-structures/linked-list/skip-linked-list.js.map +0 -1
- package/dist/types/data-structures/matrix/index.js.map +0 -1
- package/dist/types/data-structures/matrix/matrix.js.map +0 -1
- package/dist/types/data-structures/matrix/matrix2d.js.map +0 -1
- package/dist/types/data-structures/matrix/navigator.js.map +0 -1
- package/dist/types/data-structures/matrix/vector2d.js.map +0 -1
- package/dist/types/data-structures/priority-queue/index.js.map +0 -1
- package/dist/types/data-structures/priority-queue/max-priority-queue.js.map +0 -1
- package/dist/types/data-structures/priority-queue/min-priority-queue.js.map +0 -1
- package/dist/types/data-structures/priority-queue/priority-queue.js.map +0 -1
- package/dist/types/data-structures/queue/deque.js.map +0 -1
- package/dist/types/data-structures/queue/index.js.map +0 -1
- package/dist/types/data-structures/queue/queue.js.map +0 -1
- package/dist/types/data-structures/stack/index.js.map +0 -1
- package/dist/types/data-structures/stack/stack.js.map +0 -1
- package/dist/types/data-structures/tree/index.js.map +0 -1
- package/dist/types/data-structures/tree/tree.js.map +0 -1
- package/dist/types/data-structures/trie/index.js.map +0 -1
- package/dist/types/data-structures/trie/trie.js.map +0 -1
- package/dist/types/helpers.js.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/utils/index.js.map +0 -1
- package/dist/types/utils/validate-type.js.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/utils.js.map +0 -1
- package/lib/data-structures/binary-tree/index.js +0 -7
- package/lib/data-structures/binary-tree/rb-tree.js +0 -22
- package/lib/data-structures/graph/index.js +0 -4
- package/lib/data-structures/hash/index.js +0 -6
- package/lib/data-structures/hash/tree-map.js +0 -2
- package/lib/data-structures/hash/tree-set.js +0 -2
- package/lib/data-structures/heap/index.js +0 -3
- package/lib/data-structures/index.js +0 -11
- package/lib/data-structures/linked-list/index.js +0 -3
- package/lib/data-structures/matrix/index.js +0 -4
- package/lib/data-structures/priority-queue/index.js +0 -3
- package/lib/data-structures/priority-queue/priority-queue.js +0 -13
- package/lib/data-structures/queue/index.js +0 -2
- package/lib/data-structures/stack/index.js +0 -1
- package/lib/data-structures/tree/index.js +0 -1
- package/lib/data-structures/trie/index.js +0 -1
- package/lib/index.js +0 -4
- package/lib/interfaces/binary-tree.js +0 -1
- package/lib/interfaces/doubly-linked-list.js +0 -1
- package/lib/interfaces/graph.js +0 -1
- package/lib/interfaces/heap.js +0 -1
- package/lib/interfaces/index.js +0 -8
- package/lib/interfaces/navigator.js +0 -1
- package/lib/interfaces/priority-queue.js +0 -1
- package/lib/interfaces/segment-tree.js +0 -1
- package/lib/interfaces/singly-linked-list.js +0 -1
- package/lib/types/data-structures/binary-tree/avl-tree.js +0 -1
- package/lib/types/data-structures/binary-tree/binary-indexed-tree.js +0 -1
- package/lib/types/data-structures/binary-tree/bst.js +0 -1
- package/lib/types/data-structures/binary-tree/index.js +0 -6
- package/lib/types/data-structures/binary-tree/rb-tree.js +0 -5
- package/lib/types/data-structures/binary-tree/segment-tree.js +0 -1
- package/lib/types/data-structures/binary-tree/tree-multiset.js +0 -1
- package/lib/types/data-structures/graph/abstract-graph.js +0 -1
- package/lib/types/data-structures/graph/directed-graph.js +0 -6
- package/lib/types/data-structures/graph/index.js +0 -3
- package/lib/types/data-structures/graph/map-graph.js +0 -1
- package/lib/types/data-structures/graph/undirected-graph.js +0 -1
- package/lib/types/data-structures/hash/coordinate-map.js +0 -1
- package/lib/types/data-structures/hash/coordinate-set.js +0 -1
- package/lib/types/data-structures/hash/hash-map.js +0 -1
- package/lib/types/data-structures/hash/hash-table.js +0 -1
- package/lib/types/data-structures/hash/index.js +0 -1
- package/lib/types/data-structures/hash/tree-map.js +0 -1
- package/lib/types/data-structures/hash/tree-set.js +0 -1
- package/lib/types/data-structures/heap/heap.js +0 -1
- package/lib/types/data-structures/heap/index.js +0 -1
- package/lib/types/data-structures/heap/max-heap.js +0 -1
- package/lib/types/data-structures/heap/min-heap.js +0 -1
- package/lib/types/data-structures/index.js +0 -11
- package/lib/types/data-structures/linked-list/doubly-linked-list.js +0 -1
- package/lib/types/data-structures/linked-list/index.js +0 -2
- package/lib/types/data-structures/linked-list/singly-linked-list.js +0 -1
- package/lib/types/data-structures/linked-list/skip-linked-list.js +0 -1
- package/lib/types/data-structures/matrix/index.js +0 -1
- package/lib/types/data-structures/matrix/matrix.js +0 -1
- package/lib/types/data-structures/matrix/matrix2d.js +0 -1
- package/lib/types/data-structures/matrix/navigator.js +0 -1
- package/lib/types/data-structures/matrix/vector2d.js +0 -1
- package/lib/types/data-structures/priority-queue/index.js +0 -3
- package/lib/types/data-structures/priority-queue/max-priority-queue.js +0 -1
- package/lib/types/data-structures/priority-queue/min-priority-queue.js +0 -1
- package/lib/types/data-structures/priority-queue/priority-queue.js +0 -1
- package/lib/types/data-structures/queue/deque.js +0 -1
- package/lib/types/data-structures/queue/index.js +0 -2
- package/lib/types/data-structures/queue/queue.js +0 -1
- package/lib/types/data-structures/stack/index.js +0 -1
- package/lib/types/data-structures/stack/stack.js +0 -1
- package/lib/types/data-structures/tree/index.js +0 -1
- package/lib/types/data-structures/tree/tree.js +0 -1
- package/lib/types/data-structures/trie/index.js +0 -1
- package/lib/types/data-structures/trie/trie.js +0 -1
- package/lib/types/helpers.js +0 -6
- package/lib/types/index.js +0 -3
- package/lib/types/utils/index.js +0 -2
- package/lib/types/utils/utils.js +0 -1
- package/lib/types/utils/validate-type.js +0 -1
- package/lib/utils/index.js +0 -1
- package/lib/utils/utils.js +0 -63
- package/dist/{data-structures → cjs/data-structures}/binary-tree/avl-tree.d.ts +9 -9
- package/dist/{data-structures → cjs/data-structures}/binary-tree/binary-indexed-tree.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/binary-indexed-tree.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/binary-tree.d.ts +31 -31
- package/dist/{data-structures → cjs/data-structures}/binary-tree/bst.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/bst.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/rb-tree.d.ts +1 -1
- package/dist/{data-structures → cjs/data-structures}/binary-tree/rb-tree.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/segment-tree.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/segment-tree.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/binary-tree/tree-multiset.d.ts +9 -9
- package/dist/{data-structures → cjs/data-structures}/graph/abstract-graph.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/graph/abstract-graph.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/graph/directed-graph.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/graph/directed-graph.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/graph/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/graph/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/graph/map-graph.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/graph/map-graph.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/graph/undirected-graph.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/graph/undirected-graph.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/hash/coordinate-map.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/hash/coordinate-map.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/hash/coordinate-set.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/hash/coordinate-set.js +0 -0
- package/{lib → dist/cjs}/data-structures/hash/hash-map.d.ts +25 -25
- package/{lib → dist/cjs}/data-structures/hash/hash-table.d.ts +34 -34
- package/dist/{data-structures → cjs/data-structures}/hash/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/hash/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/hash/tree-map.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/hash/tree-map.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/hash/tree-set.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/hash/tree-set.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/heap/heap.d.ts +66 -66
- package/dist/{data-structures → cjs/data-structures}/heap/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/heap/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/heap/max-heap.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/heap/max-heap.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/heap/min-heap.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/heap/min-heap.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/index.js +0 -0
- package/{lib → dist/cjs}/data-structures/linked-list/doubly-linked-list.d.ts +1 -1
- package/dist/{data-structures → cjs/data-structures}/linked-list/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/linked-list/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/linked-list/singly-linked-list.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/linked-list/singly-linked-list.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/linked-list/skip-linked-list.d.ts +17 -17
- package/dist/{data-structures → cjs/data-structures}/matrix/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/matrix/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/matrix/matrix.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/matrix/matrix.js +0 -0
- package/{lib → dist/cjs}/data-structures/matrix/matrix2d.d.ts +7 -7
- package/dist/{data-structures → cjs/data-structures}/matrix/navigator.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/matrix/navigator.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/matrix/vector2d.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/matrix/vector2d.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/priority-queue/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/priority-queue/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/priority-queue/max-priority-queue.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/priority-queue/max-priority-queue.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/priority-queue/min-priority-queue.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/priority-queue/min-priority-queue.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/priority-queue/priority-queue.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/priority-queue/priority-queue.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/queue/deque.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/queue/deque.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/queue/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/queue/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/queue/queue.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/queue/queue.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/stack/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/stack/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/stack/stack.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/stack/stack.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/tree/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/tree/index.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/tree/tree.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/tree/tree.js +0 -0
- package/dist/{data-structures → cjs/data-structures}/trie/index.d.ts +0 -0
- package/dist/{data-structures → cjs/data-structures}/trie/index.js +0 -0
- package/{lib → dist/cjs}/data-structures/trie/trie.d.ts +2 -2
- package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- package/dist/{index.js → cjs/index.js} +0 -0
- package/dist/{interfaces → cjs/interfaces}/binary-tree.d.ts +0 -0
- package/dist/{interfaces → cjs/interfaces}/binary-tree.js +0 -0
- package/dist/{interfaces → cjs/interfaces}/doubly-linked-list.d.ts +0 -0
- package/dist/{interfaces → cjs/interfaces}/doubly-linked-list.js +0 -0
- package/dist/{interfaces → cjs/interfaces}/graph.d.ts +0 -0
- package/dist/{interfaces → cjs/interfaces}/graph.js +0 -0
- package/dist/{interfaces → cjs/interfaces}/heap.d.ts +0 -0
- package/dist/{interfaces → cjs/interfaces}/heap.js +0 -0
- package/dist/{interfaces → cjs/interfaces}/index.d.ts +0 -0
- package/dist/{interfaces → cjs/interfaces}/index.js +0 -0
- package/dist/{interfaces → cjs/interfaces}/navigator.d.ts +0 -0
- package/dist/{interfaces → cjs/interfaces}/navigator.js +0 -0
- package/dist/{interfaces → cjs/interfaces}/priority-queue.d.ts +0 -0
- package/dist/{interfaces → cjs/interfaces}/priority-queue.js +0 -0
- package/dist/{interfaces → cjs/interfaces}/segment-tree.d.ts +0 -0
- package/dist/{interfaces → cjs/interfaces}/segment-tree.js +0 -0
- package/dist/{interfaces → cjs/interfaces}/singly-linked-list.d.ts +0 -0
- package/dist/{interfaces → cjs/interfaces}/singly-linked-list.js +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/avl-tree.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/avl-tree.js +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/binary-indexed-tree.js +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/binary-tree.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/binary-tree.js +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/bst.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/bst.js +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/rb-tree.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/rb-tree.js +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/segment-tree.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/segment-tree.js +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/tree-multiset.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/binary-tree/tree-multiset.js +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/abstract-graph.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/abstract-graph.js +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/directed-graph.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/directed-graph.js +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/map-graph.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/map-graph.js +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/undirected-graph.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/graph/undirected-graph.js +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/coordinate-map.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/coordinate-map.js +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/coordinate-set.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/coordinate-set.js +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/hash-map.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/hash-map.js +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/hash-table.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/hash-table.js +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/tree-map.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/tree-map.js +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/tree-set.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/hash/tree-set.js +0 -0
- package/dist/{types → cjs/types}/data-structures/heap/heap.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/heap/heap.js +0 -0
- package/dist/{types → cjs/types}/data-structures/heap/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/heap/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/heap/max-heap.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/heap/max-heap.js +0 -0
- package/dist/{types → cjs/types}/data-structures/heap/min-heap.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/heap/min-heap.js +0 -0
- package/dist/{types → cjs/types}/data-structures/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/linked-list/doubly-linked-list.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/linked-list/doubly-linked-list.js +0 -0
- package/dist/{types → cjs/types}/data-structures/linked-list/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/linked-list/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/linked-list/singly-linked-list.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/linked-list/singly-linked-list.js +0 -0
- package/dist/{types → cjs/types}/data-structures/linked-list/skip-linked-list.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/linked-list/skip-linked-list.js +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/matrix.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/matrix.js +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/matrix2d.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/matrix2d.js +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/navigator.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/navigator.js +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/vector2d.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/matrix/vector2d.js +0 -0
- package/dist/{types → cjs/types}/data-structures/priority-queue/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/priority-queue/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/priority-queue/max-priority-queue.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/priority-queue/max-priority-queue.js +0 -0
- package/dist/{types → cjs/types}/data-structures/priority-queue/min-priority-queue.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/priority-queue/min-priority-queue.js +0 -0
- package/dist/{types → cjs/types}/data-structures/priority-queue/priority-queue.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/priority-queue/priority-queue.js +0 -0
- package/dist/{types → cjs/types}/data-structures/queue/deque.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/queue/deque.js +0 -0
- package/dist/{types → cjs/types}/data-structures/queue/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/queue/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/queue/queue.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/queue/queue.js +0 -0
- package/dist/{types → cjs/types}/data-structures/stack/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/stack/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/stack/stack.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/stack/stack.js +0 -0
- package/dist/{types → cjs/types}/data-structures/tree/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/tree/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/tree/tree.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/tree/tree.js +0 -0
- package/dist/{types → cjs/types}/data-structures/trie/index.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/trie/index.js +0 -0
- package/dist/{types → cjs/types}/data-structures/trie/trie.d.ts +0 -0
- package/dist/{types → cjs/types}/data-structures/trie/trie.js +0 -0
- package/dist/{types → cjs/types}/helpers.d.ts +0 -0
- package/dist/{types → cjs/types}/helpers.js +0 -0
- package/dist/{types → cjs/types}/index.d.ts +0 -0
- package/dist/{types → cjs/types}/index.js +0 -0
- package/dist/{types → cjs/types}/utils/index.d.ts +0 -0
- package/dist/{types → cjs/types}/utils/index.js +0 -0
- package/dist/{types → cjs/types}/utils/utils.d.ts +0 -0
- package/dist/{types → cjs/types}/utils/utils.js +0 -0
- package/dist/{types → cjs/types}/utils/validate-type.d.ts +0 -0
- package/dist/{types → cjs/types}/utils/validate-type.js +0 -0
- package/dist/{utils → cjs/utils}/index.d.ts +0 -0
- package/dist/{utils → cjs/utils}/index.js +0 -0
- package/dist/{utils → cjs/utils}/utils.d.ts +0 -0
- package/dist/{utils → cjs/utils}/utils.js +0 -0
- package/{lib → dist/mjs}/data-structures/binary-tree/avl-tree.d.ts +9 -9
- package/{lib → dist/mjs}/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/binary-tree/binary-tree.d.ts +31 -31
- package/{lib → dist/mjs}/data-structures/binary-tree/bst.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/binary-tree/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/binary-tree/rb-tree.d.ts +1 -1
- package/{lib → dist/mjs}/data-structures/binary-tree/segment-tree.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/binary-tree/tree-multiset.d.ts +9 -9
- package/{lib → dist/mjs}/data-structures/graph/abstract-graph.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/graph/directed-graph.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/graph/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/graph/map-graph.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/graph/undirected-graph.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/hash/coordinate-map.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/hash/coordinate-set.d.ts +0 -0
- package/dist/{data-structures → mjs/data-structures}/hash/hash-map.d.ts +25 -25
- package/dist/{data-structures → mjs/data-structures}/hash/hash-table.d.ts +34 -34
- package/{lib → dist/mjs}/data-structures/hash/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/hash/tree-map.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/hash/tree-set.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/heap/heap.d.ts +66 -66
- package/{lib → dist/mjs}/data-structures/heap/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/heap/max-heap.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/heap/min-heap.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/index.d.ts +0 -0
- package/dist/{data-structures → mjs/data-structures}/linked-list/doubly-linked-list.d.ts +1 -1
- package/{lib → dist/mjs}/data-structures/linked-list/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/linked-list/singly-linked-list.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/linked-list/skip-linked-list.d.ts +17 -17
- package/{lib → dist/mjs}/data-structures/matrix/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/matrix/matrix.d.ts +0 -0
- package/dist/{data-structures → mjs/data-structures}/matrix/matrix2d.d.ts +7 -7
- package/{lib → dist/mjs}/data-structures/matrix/navigator.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/matrix/vector2d.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/priority-queue/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/priority-queue/max-priority-queue.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/priority-queue/min-priority-queue.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/priority-queue/priority-queue.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/queue/deque.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/queue/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/queue/queue.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/stack/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/stack/stack.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/tree/index.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/tree/tree.d.ts +0 -0
- package/{lib → dist/mjs}/data-structures/trie/index.d.ts +0 -0
- package/dist/{data-structures → mjs/data-structures}/trie/trie.d.ts +2 -2
- /package/{lib → dist/mjs}/index.d.ts +0 -0
- /package/{lib → dist/mjs}/interfaces/binary-tree.d.ts +0 -0
- /package/{lib → dist/mjs}/interfaces/doubly-linked-list.d.ts +0 -0
- /package/{lib → dist/mjs}/interfaces/graph.d.ts +0 -0
- /package/{lib → dist/mjs}/interfaces/heap.d.ts +0 -0
- /package/{lib → dist/mjs}/interfaces/index.d.ts +0 -0
- /package/{lib → dist/mjs}/interfaces/navigator.d.ts +0 -0
- /package/{lib → dist/mjs}/interfaces/priority-queue.d.ts +0 -0
- /package/{lib → dist/mjs}/interfaces/segment-tree.d.ts +0 -0
- /package/{lib → dist/mjs}/interfaces/singly-linked-list.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/binary-tree/avl-tree.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/binary-tree/binary-tree.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/binary-tree/bst.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/binary-tree/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/binary-tree/rb-tree.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/binary-tree/segment-tree.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/binary-tree/tree-multiset.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/graph/abstract-graph.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/graph/directed-graph.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/graph/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/graph/map-graph.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/graph/undirected-graph.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/hash/coordinate-map.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/hash/coordinate-set.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/hash/hash-map.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/hash/hash-table.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/hash/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/hash/tree-map.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/hash/tree-set.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/heap/heap.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/heap/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/heap/max-heap.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/heap/min-heap.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/linked-list/doubly-linked-list.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/linked-list/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/linked-list/singly-linked-list.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/linked-list/skip-linked-list.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/matrix/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/matrix/matrix.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/matrix/matrix2d.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/matrix/navigator.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/matrix/vector2d.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/priority-queue/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/priority-queue/max-priority-queue.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/priority-queue/min-priority-queue.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/priority-queue/priority-queue.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/queue/deque.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/queue/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/queue/queue.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/stack/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/stack/stack.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/tree/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/tree/tree.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/trie/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/data-structures/trie/trie.d.ts +0 -0
- /package/{lib → dist/mjs}/types/helpers.d.ts +0 -0
- /package/{lib → dist/mjs}/types/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/utils/index.d.ts +0 -0
- /package/{lib → dist/mjs}/types/utils/utils.d.ts +0 -0
- /package/{lib → dist/mjs}/types/utils/validate-type.d.ts +0 -0
- /package/{lib → dist/mjs}/utils/index.d.ts +0 -0
- /package/{lib → dist/mjs}/utils/utils.d.ts +0 -0
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HashMap = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* data-structure-typed
|
|
3
6
|
*
|
|
@@ -5,43 +8,7 @@
|
|
|
5
8
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
9
|
* @license MIT License
|
|
7
10
|
*/
|
|
8
|
-
|
|
9
|
-
get hashFn() {
|
|
10
|
-
return this._hashFn;
|
|
11
|
-
}
|
|
12
|
-
set hashFn(value) {
|
|
13
|
-
this._hashFn = value;
|
|
14
|
-
}
|
|
15
|
-
get table() {
|
|
16
|
-
return this._table;
|
|
17
|
-
}
|
|
18
|
-
set table(value) {
|
|
19
|
-
this._table = value;
|
|
20
|
-
}
|
|
21
|
-
get capacityMultiplier() {
|
|
22
|
-
return this._capacityMultiplier;
|
|
23
|
-
}
|
|
24
|
-
set capacityMultiplier(value) {
|
|
25
|
-
this._capacityMultiplier = value;
|
|
26
|
-
}
|
|
27
|
-
get loadFactor() {
|
|
28
|
-
return this._loadFactor;
|
|
29
|
-
}
|
|
30
|
-
set loadFactor(value) {
|
|
31
|
-
this._loadFactor = value;
|
|
32
|
-
}
|
|
33
|
-
get initialCapacity() {
|
|
34
|
-
return this._initialCapacity;
|
|
35
|
-
}
|
|
36
|
-
set initialCapacity(value) {
|
|
37
|
-
this._initialCapacity = value;
|
|
38
|
-
}
|
|
39
|
-
get size() {
|
|
40
|
-
return this._size;
|
|
41
|
-
}
|
|
42
|
-
set size(value) {
|
|
43
|
-
this._size = value;
|
|
44
|
-
}
|
|
11
|
+
class HashMap {
|
|
45
12
|
/**
|
|
46
13
|
* The constructor initializes the properties of a hash table, including the initial capacity, load factor, capacity
|
|
47
14
|
* multiplier, size, table array, and hash function.
|
|
@@ -71,30 +38,47 @@ export class HashMap {
|
|
|
71
38
|
return hash % this.table.length;
|
|
72
39
|
});
|
|
73
40
|
}
|
|
74
|
-
|
|
75
|
-
|
|
41
|
+
_initialCapacity;
|
|
42
|
+
get initialCapacity() {
|
|
43
|
+
return this._initialCapacity;
|
|
76
44
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
45
|
+
set initialCapacity(value) {
|
|
46
|
+
this._initialCapacity = value;
|
|
47
|
+
}
|
|
48
|
+
_loadFactor;
|
|
49
|
+
get loadFactor() {
|
|
50
|
+
return this._loadFactor;
|
|
51
|
+
}
|
|
52
|
+
set loadFactor(value) {
|
|
53
|
+
this._loadFactor = value;
|
|
54
|
+
}
|
|
55
|
+
_capacityMultiplier;
|
|
56
|
+
get capacityMultiplier() {
|
|
57
|
+
return this._capacityMultiplier;
|
|
58
|
+
}
|
|
59
|
+
set capacityMultiplier(value) {
|
|
60
|
+
this._capacityMultiplier = value;
|
|
61
|
+
}
|
|
62
|
+
_size;
|
|
63
|
+
get size() {
|
|
64
|
+
return this._size;
|
|
65
|
+
}
|
|
66
|
+
set size(value) {
|
|
67
|
+
this._size = value;
|
|
68
|
+
}
|
|
69
|
+
_table;
|
|
70
|
+
get table() {
|
|
71
|
+
return this._table;
|
|
72
|
+
}
|
|
73
|
+
set table(value) {
|
|
74
|
+
this._table = value;
|
|
75
|
+
}
|
|
76
|
+
_hashFn;
|
|
77
|
+
get hashFn() {
|
|
78
|
+
return this._hashFn;
|
|
79
|
+
}
|
|
80
|
+
set hashFn(value) {
|
|
81
|
+
this._hashFn = value;
|
|
98
82
|
}
|
|
99
83
|
set(key, value) {
|
|
100
84
|
const loadFactor = this.size / this.table.length;
|
|
@@ -164,4 +148,30 @@ export class HashMap {
|
|
|
164
148
|
isEmpty() {
|
|
165
149
|
return this.size === 0;
|
|
166
150
|
}
|
|
151
|
+
_hash(key) {
|
|
152
|
+
return this._hashFn(key);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* The `resizeTable` function resizes the table used in a hash map by creating a new table with a specified capacity and
|
|
156
|
+
* rehashing the key-value pairs from the old table into the new table.
|
|
157
|
+
* @param {number} newCapacity - The newCapacity parameter is the desired capacity for the resized table. It represents
|
|
158
|
+
* the number of buckets that the new table should have.
|
|
159
|
+
*/
|
|
160
|
+
resizeTable(newCapacity) {
|
|
161
|
+
const newTable = new Array(newCapacity);
|
|
162
|
+
for (const bucket of this._table) {
|
|
163
|
+
// Note that this is this._table
|
|
164
|
+
if (bucket) {
|
|
165
|
+
for (const [key, value] of bucket) {
|
|
166
|
+
const newIndex = this._hash(key) % newCapacity;
|
|
167
|
+
if (!newTable[newIndex]) {
|
|
168
|
+
newTable[newIndex] = [];
|
|
169
|
+
}
|
|
170
|
+
newTable[newIndex].push([key, value]);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
this._table = newTable; // Again, here is this._table
|
|
175
|
+
}
|
|
167
176
|
}
|
|
177
|
+
exports.HashMap = HashMap;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
/**
|
|
2
3
|
* data-structure-typed
|
|
3
4
|
*
|
|
@@ -5,121 +6,52 @@
|
|
|
5
6
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
7
|
* @license MIT License
|
|
7
8
|
*/
|
|
8
|
-
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.HashTable = exports.HashTableNode = void 0;
|
|
11
|
+
class HashTableNode {
|
|
12
|
+
key;
|
|
13
|
+
val;
|
|
14
|
+
next;
|
|
9
15
|
constructor(key, val) {
|
|
10
16
|
this.key = key;
|
|
11
17
|
this.val = val;
|
|
12
18
|
this.next = null;
|
|
13
19
|
}
|
|
14
20
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
set hashFn(value) {
|
|
20
|
-
this._hashFn = value;
|
|
21
|
-
}
|
|
22
|
-
get buckets() {
|
|
23
|
-
return this._buckets;
|
|
24
|
-
}
|
|
25
|
-
set buckets(value) {
|
|
26
|
-
this._buckets = value;
|
|
27
|
-
}
|
|
28
|
-
get capacity() {
|
|
29
|
-
return this._capacity;
|
|
30
|
-
}
|
|
31
|
-
set capacity(value) {
|
|
32
|
-
this._capacity = value;
|
|
33
|
-
}
|
|
21
|
+
exports.HashTableNode = HashTableNode;
|
|
22
|
+
class HashTable {
|
|
23
|
+
static DEFAULT_CAPACITY = 16;
|
|
24
|
+
static LOAD_FACTOR = 0.75;
|
|
34
25
|
constructor(capacity = HashTable.DEFAULT_CAPACITY, hashFn) {
|
|
35
26
|
this._hashFn = hashFn || this._defaultHashFn;
|
|
36
27
|
this._capacity = Math.max(capacity, HashTable.DEFAULT_CAPACITY);
|
|
37
28
|
this._size = 0;
|
|
38
29
|
this._buckets = new Array(this._capacity).fill(null);
|
|
39
30
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
* @param {K} key - The `key` parameter is the input value that needs to be hashed. It can be of any type, but in this
|
|
44
|
-
* code snippet, it is checked whether the key is a string or an object. If it is a string, the `_murmurStringHashFn`
|
|
45
|
-
* function is used to
|
|
46
|
-
* @returns the hash value of the key modulo the capacity of the data structure.
|
|
47
|
-
*/
|
|
48
|
-
_defaultHashFn(key) {
|
|
49
|
-
// Can be replaced with other hash functions as needed
|
|
50
|
-
const hashValue = typeof key === 'string' ? this._murmurStringHashFn(key) : this._objectHash(key);
|
|
51
|
-
return hashValue % this._capacity;
|
|
31
|
+
_capacity;
|
|
32
|
+
get capacity() {
|
|
33
|
+
return this._capacity;
|
|
52
34
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
* string hash function.
|
|
56
|
-
* @param {K} key - The `key` parameter is the input value for which we want to calculate the hash. It can be of any
|
|
57
|
-
* type, as it is generic (`K`). The function converts the `key` to a string using the `String()` function.
|
|
58
|
-
* @returns a number, which is the result of the multiplicative string hash function applied to the input key.
|
|
59
|
-
*/
|
|
60
|
-
_multiplicativeStringHashFn(key) {
|
|
61
|
-
const keyString = String(key);
|
|
62
|
-
let hash = 0;
|
|
63
|
-
for (let i = 0; i < keyString.length; i++) {
|
|
64
|
-
const charCode = keyString.charCodeAt(i);
|
|
65
|
-
// Some constants for adjusting the hash function
|
|
66
|
-
const A = 0.618033988749895;
|
|
67
|
-
const M = 1 << 30; // 2^30
|
|
68
|
-
hash = (hash * A + charCode) % M;
|
|
69
|
-
}
|
|
70
|
-
return Math.abs(hash); // Take absolute value to ensure non-negative numbers
|
|
35
|
+
set capacity(value) {
|
|
36
|
+
this._capacity = value;
|
|
71
37
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
* type, but it will be converted to a string using the `String()` function before calculating the hash.
|
|
76
|
-
* @returns a number, which is the hash value calculated for the given key.
|
|
77
|
-
*/
|
|
78
|
-
_murmurStringHashFn(key) {
|
|
79
|
-
const keyString = String(key);
|
|
80
|
-
const seed = 0;
|
|
81
|
-
let hash = seed;
|
|
82
|
-
for (let i = 0; i < keyString.length; i++) {
|
|
83
|
-
const char = keyString.charCodeAt(i);
|
|
84
|
-
hash = (hash ^ char) * 0x5bd1e995;
|
|
85
|
-
hash = (hash ^ (hash >>> 15)) * 0x27d4eb2d;
|
|
86
|
-
hash = hash ^ (hash >>> 15);
|
|
87
|
-
}
|
|
88
|
-
return Math.abs(hash);
|
|
38
|
+
_size;
|
|
39
|
+
get size() {
|
|
40
|
+
return this._size;
|
|
89
41
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
* @returns The hash function is returning a number.
|
|
94
|
-
*/
|
|
95
|
-
_hash(key) {
|
|
96
|
-
return this.hashFn(key);
|
|
42
|
+
_buckets;
|
|
43
|
+
get buckets() {
|
|
44
|
+
return this._buckets;
|
|
97
45
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
* @param {string} key - The `key` parameter in the `stringHash` function is a string value that represents the input for
|
|
101
|
-
* which we want to calculate the hash value.
|
|
102
|
-
* @returns a number, which is the hash value of the input string.
|
|
103
|
-
*/
|
|
104
|
-
_stringHash(key) {
|
|
105
|
-
let hash = 0;
|
|
106
|
-
for (let i = 0; i < key.length; i++) {
|
|
107
|
-
hash = (hash * 31 + key.charCodeAt(i)) & 0xffffffff;
|
|
108
|
-
}
|
|
109
|
-
return hash;
|
|
46
|
+
set buckets(value) {
|
|
47
|
+
this._buckets = value;
|
|
110
48
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
*/
|
|
118
|
-
_objectHash(key) {
|
|
119
|
-
// If the key is an object, you can write a custom hash function
|
|
120
|
-
// For example, convert the object's properties to a string and use string hashing
|
|
121
|
-
// This is just an example; you should write a specific object hash function as needed
|
|
122
|
-
return this._stringHash(JSON.stringify(key));
|
|
49
|
+
_hashFn;
|
|
50
|
+
get hashFn() {
|
|
51
|
+
return this._hashFn;
|
|
52
|
+
}
|
|
53
|
+
set hashFn(value) {
|
|
54
|
+
this._hashFn = value;
|
|
123
55
|
}
|
|
124
56
|
/**
|
|
125
57
|
* The set function adds a key-value pair to the hash table, handling collisions and resizing if necessary.
|
|
@@ -204,6 +136,90 @@ export class HashTable {
|
|
|
204
136
|
currentNode = currentNode.next;
|
|
205
137
|
}
|
|
206
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* The function `_defaultHashFn` calculates the hash value of a given key and returns the remainder when divided by the
|
|
141
|
+
* capacity of the data structure.
|
|
142
|
+
* @param {K} key - The `key` parameter is the input value that needs to be hashed. It can be of any type, but in this
|
|
143
|
+
* code snippet, it is checked whether the key is a string or an object. If it is a string, the `_murmurStringHashFn`
|
|
144
|
+
* function is used to
|
|
145
|
+
* @returns the hash value of the key modulo the capacity of the data structure.
|
|
146
|
+
*/
|
|
147
|
+
_defaultHashFn(key) {
|
|
148
|
+
// Can be replaced with other hash functions as needed
|
|
149
|
+
const hashValue = typeof key === 'string' ? this._murmurStringHashFn(key) : this._objectHash(key);
|
|
150
|
+
return hashValue % this._capacity;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* The `_multiplicativeStringHashFn` function calculates a hash value for a given string key using the multiplicative
|
|
154
|
+
* string hash function.
|
|
155
|
+
* @param {K} key - The `key` parameter is the input value for which we want to calculate the hash. It can be of any
|
|
156
|
+
* type, as it is generic (`K`). The function converts the `key` to a string using the `String()` function.
|
|
157
|
+
* @returns a number, which is the result of the multiplicative string hash function applied to the input key.
|
|
158
|
+
*/
|
|
159
|
+
_multiplicativeStringHashFn(key) {
|
|
160
|
+
const keyString = String(key);
|
|
161
|
+
let hash = 0;
|
|
162
|
+
for (let i = 0; i < keyString.length; i++) {
|
|
163
|
+
const charCode = keyString.charCodeAt(i);
|
|
164
|
+
// Some constants for adjusting the hash function
|
|
165
|
+
const A = 0.618033988749895;
|
|
166
|
+
const M = 1 << 30; // 2^30
|
|
167
|
+
hash = (hash * A + charCode) % M;
|
|
168
|
+
}
|
|
169
|
+
return Math.abs(hash); // Take absolute value to ensure non-negative numbers
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* The function `_murmurStringHashFn` calculates a hash value for a given string key using the MurmurHash algorithm.
|
|
173
|
+
* @param {K} key - The `key` parameter is the input value for which you want to calculate the hash. It can be of any
|
|
174
|
+
* type, but it will be converted to a string using the `String()` function before calculating the hash.
|
|
175
|
+
* @returns a number, which is the hash value calculated for the given key.
|
|
176
|
+
*/
|
|
177
|
+
_murmurStringHashFn(key) {
|
|
178
|
+
const keyString = String(key);
|
|
179
|
+
const seed = 0;
|
|
180
|
+
let hash = seed;
|
|
181
|
+
for (let i = 0; i < keyString.length; i++) {
|
|
182
|
+
const char = keyString.charCodeAt(i);
|
|
183
|
+
hash = (hash ^ char) * 0x5bd1e995;
|
|
184
|
+
hash = (hash ^ (hash >>> 15)) * 0x27d4eb2d;
|
|
185
|
+
hash = hash ^ (hash >>> 15);
|
|
186
|
+
}
|
|
187
|
+
return Math.abs(hash);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* The _hash function takes a key and returns a number.
|
|
191
|
+
* @param {K} key - The parameter "key" is of type K, which represents the type of the key that will be hashed.
|
|
192
|
+
* @returns The hash function is returning a number.
|
|
193
|
+
*/
|
|
194
|
+
_hash(key) {
|
|
195
|
+
return this.hashFn(key);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* The function calculates a hash value for a given string using the djb2 algorithm.
|
|
199
|
+
* @param {string} key - The `key` parameter in the `stringHash` function is a string value that represents the input for
|
|
200
|
+
* which we want to calculate the hash value.
|
|
201
|
+
* @returns a number, which is the hash value of the input string.
|
|
202
|
+
*/
|
|
203
|
+
_stringHash(key) {
|
|
204
|
+
let hash = 0;
|
|
205
|
+
for (let i = 0; i < key.length; i++) {
|
|
206
|
+
hash = (hash * 31 + key.charCodeAt(i)) & 0xffffffff;
|
|
207
|
+
}
|
|
208
|
+
return hash;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* The function `_objectHash` takes a key and returns a hash value, using a custom hash function for objects.
|
|
212
|
+
* @param {K} key - The parameter "key" is of type "K", which means it can be any type. It could be a string, number,
|
|
213
|
+
* boolean, object, or any other type of value. The purpose of the objectHash function is to generate a hash value for
|
|
214
|
+
* the key, which can be used for
|
|
215
|
+
* @returns a number, which is the hash value of the key.
|
|
216
|
+
*/
|
|
217
|
+
_objectHash(key) {
|
|
218
|
+
// If the key is an object, you can write a custom hash function
|
|
219
|
+
// For example, convert the object's properties to a string and use string hashing
|
|
220
|
+
// This is just an example; you should write a specific object hash function as needed
|
|
221
|
+
return this._stringHash(JSON.stringify(key));
|
|
222
|
+
}
|
|
207
223
|
/**
|
|
208
224
|
* The `expand` function increases the capacity of a hash table by creating a new array of buckets with double the
|
|
209
225
|
* capacity and rehashing all the existing key-value pairs into the new buckets.
|
|
@@ -232,9 +248,5 @@ export class HashTable {
|
|
|
232
248
|
this._buckets = newBuckets;
|
|
233
249
|
this._capacity = newCapacity;
|
|
234
250
|
}
|
|
235
|
-
get size() {
|
|
236
|
-
return this._size;
|
|
237
|
-
}
|
|
238
251
|
}
|
|
239
|
-
HashTable
|
|
240
|
-
HashTable.LOAD_FACTOR = 0.75;
|
|
252
|
+
exports.HashTable = HashTable;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./hash-table"), exports);
|
|
18
|
+
__exportStar(require("./coordinate-map"), exports);
|
|
19
|
+
__exportStar(require("./coordinate-set"), exports);
|
|
20
|
+
__exportStar(require("./tree-map"), exports);
|
|
21
|
+
__exportStar(require("./tree-set"), exports);
|
|
22
|
+
__exportStar(require("./hash-map"), exports);
|