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.AbstractGraph = exports.AbstractEdge = exports.AbstractVertex = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* data-structure-typed
|
|
3
6
|
*
|
|
@@ -5,10 +8,10 @@
|
|
|
5
8
|
* @copyright Copyright (c) 2022 Kirk Qi <qilinaus@gmail.com>
|
|
6
9
|
* @license MIT License
|
|
7
10
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
const utils_1 = require("../../utils");
|
|
12
|
+
const priority_queue_1 = require("../priority-queue");
|
|
13
|
+
const queue_1 = require("../queue");
|
|
14
|
+
class AbstractVertex {
|
|
12
15
|
/**
|
|
13
16
|
* The function is a protected constructor that takes an key and an optional value as parameters.
|
|
14
17
|
* @param {VertexKey} key - The `key` parameter is of type `VertexKey` and represents the identifier of the vertex. It is
|
|
@@ -20,12 +23,14 @@ export class AbstractVertex {
|
|
|
20
23
|
this._key = key;
|
|
21
24
|
this._val = val;
|
|
22
25
|
}
|
|
26
|
+
_key;
|
|
23
27
|
get key() {
|
|
24
28
|
return this._key;
|
|
25
29
|
}
|
|
26
30
|
set key(v) {
|
|
27
31
|
this._key = v;
|
|
28
32
|
}
|
|
33
|
+
_val;
|
|
29
34
|
get val() {
|
|
30
35
|
return this._val;
|
|
31
36
|
}
|
|
@@ -33,7 +38,8 @@ export class AbstractVertex {
|
|
|
33
38
|
this._val = value;
|
|
34
39
|
}
|
|
35
40
|
}
|
|
36
|
-
|
|
41
|
+
exports.AbstractVertex = AbstractVertex;
|
|
42
|
+
class AbstractEdge {
|
|
37
43
|
/**
|
|
38
44
|
* The above function is a protected constructor that initializes the weight, value, and hash code properties of an
|
|
39
45
|
* object.
|
|
@@ -46,20 +52,23 @@ export class AbstractEdge {
|
|
|
46
52
|
constructor(weight, val) {
|
|
47
53
|
this._weight = weight !== undefined ? weight : 1;
|
|
48
54
|
this._val = val;
|
|
49
|
-
this._hashCode = uuidV4();
|
|
55
|
+
this._hashCode = (0, utils_1.uuidV4)();
|
|
50
56
|
}
|
|
57
|
+
_val;
|
|
51
58
|
get val() {
|
|
52
59
|
return this._val;
|
|
53
60
|
}
|
|
54
61
|
set val(value) {
|
|
55
62
|
this._val = value;
|
|
56
63
|
}
|
|
64
|
+
_weight;
|
|
57
65
|
get weight() {
|
|
58
66
|
return this._weight;
|
|
59
67
|
}
|
|
60
68
|
set weight(v) {
|
|
61
69
|
this._weight = v;
|
|
62
70
|
}
|
|
71
|
+
_hashCode;
|
|
63
72
|
get hashCode() {
|
|
64
73
|
return this._hashCode;
|
|
65
74
|
}
|
|
@@ -76,10 +85,9 @@ export class AbstractEdge {
|
|
|
76
85
|
this._hashCode = v;
|
|
77
86
|
}
|
|
78
87
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
88
|
+
exports.AbstractEdge = AbstractEdge;
|
|
89
|
+
class AbstractGraph {
|
|
90
|
+
_vertices = new Map();
|
|
83
91
|
get vertices() {
|
|
84
92
|
return this._vertices;
|
|
85
93
|
}
|
|
@@ -212,7 +220,7 @@ export class AbstractGraph {
|
|
|
212
220
|
if (!visiting.get(neighbor)) {
|
|
213
221
|
path.push(neighbor);
|
|
214
222
|
dfs(neighbor, dest, visiting, path);
|
|
215
|
-
arrayRemove(path, (vertex) => vertex === neighbor);
|
|
223
|
+
(0, utils_1.arrayRemove)(path, (vertex) => vertex === neighbor);
|
|
216
224
|
}
|
|
217
225
|
}
|
|
218
226
|
visiting.set(cur, false);
|
|
@@ -226,10 +234,9 @@ export class AbstractGraph {
|
|
|
226
234
|
* @returns The function `getPathSumWeight` returns the sum of the weights of the edges in the given path.
|
|
227
235
|
*/
|
|
228
236
|
getPathSumWeight(path) {
|
|
229
|
-
var _a;
|
|
230
237
|
let sum = 0;
|
|
231
238
|
for (let i = 0; i < path.length; i++) {
|
|
232
|
-
sum +=
|
|
239
|
+
sum += this.getEdge(path[i], path[i + 1])?.weight || 0;
|
|
233
240
|
}
|
|
234
241
|
return sum;
|
|
235
242
|
}
|
|
@@ -266,7 +273,7 @@ export class AbstractGraph {
|
|
|
266
273
|
return null;
|
|
267
274
|
}
|
|
268
275
|
const visited = new Map();
|
|
269
|
-
const queue = new Queue([vertex1]);
|
|
276
|
+
const queue = new queue_1.Queue([vertex1]);
|
|
270
277
|
visited.set(vertex1, true);
|
|
271
278
|
let cost = 0;
|
|
272
279
|
while (queue.size > 0) {
|
|
@@ -341,7 +348,7 @@ export class AbstractGraph {
|
|
|
341
348
|
if (!visiting.get(neighbor)) {
|
|
342
349
|
path.push(neighbor);
|
|
343
350
|
dfs(neighbor, dest, visiting, path);
|
|
344
|
-
arrayRemove(path, (vertex) => vertex === neighbor);
|
|
351
|
+
(0, utils_1.arrayRemove)(path, (vertex) => vertex === neighbor);
|
|
345
352
|
}
|
|
346
353
|
}
|
|
347
354
|
visiting.set(cur, false);
|
|
@@ -500,7 +507,6 @@ export class AbstractGraph {
|
|
|
500
507
|
* @returns The function `dijkstra` returns an object of type `DijkstraResult<V>`.
|
|
501
508
|
*/
|
|
502
509
|
dijkstra(src, dest, getMinDist, genPaths) {
|
|
503
|
-
var _a;
|
|
504
510
|
if (getMinDist === undefined)
|
|
505
511
|
getMinDist = false;
|
|
506
512
|
if (genPaths === undefined)
|
|
@@ -524,7 +530,7 @@ export class AbstractGraph {
|
|
|
524
530
|
if (vertexOrKey instanceof AbstractVertex)
|
|
525
531
|
distMap.set(vertexOrKey, Infinity);
|
|
526
532
|
}
|
|
527
|
-
const heap = new PriorityQueue((a, b) => a.key - b.key);
|
|
533
|
+
const heap = new priority_queue_1.PriorityQueue((a, b) => a.key - b.key);
|
|
528
534
|
heap.add({ key: 0, val: srcVertex });
|
|
529
535
|
distMap.set(srcVertex, 0);
|
|
530
536
|
preMap.set(srcVertex, null);
|
|
@@ -552,8 +558,8 @@ export class AbstractGraph {
|
|
|
552
558
|
};
|
|
553
559
|
while (heap.size > 0) {
|
|
554
560
|
const curHeapNode = heap.poll();
|
|
555
|
-
const dist = curHeapNode
|
|
556
|
-
const cur = curHeapNode
|
|
561
|
+
const dist = curHeapNode?.key;
|
|
562
|
+
const cur = curHeapNode?.val;
|
|
557
563
|
if (dist !== undefined) {
|
|
558
564
|
if (cur) {
|
|
559
565
|
seen.add(cur);
|
|
@@ -569,7 +575,7 @@ export class AbstractGraph {
|
|
|
569
575
|
const neighbors = this.getNeighbors(cur);
|
|
570
576
|
for (const neighbor of neighbors) {
|
|
571
577
|
if (!seen.has(neighbor)) {
|
|
572
|
-
const weight =
|
|
578
|
+
const weight = this.getEdge(cur, neighbor)?.weight;
|
|
573
579
|
if (typeof weight === 'number') {
|
|
574
580
|
const distSrcToNeighbor = distMap.get(neighbor);
|
|
575
581
|
if (distSrcToNeighbor) {
|
|
@@ -743,7 +749,6 @@ export class AbstractGraph {
|
|
|
743
749
|
* path between vertices in the
|
|
744
750
|
*/
|
|
745
751
|
floyd() {
|
|
746
|
-
var _a;
|
|
747
752
|
const idAndVertices = [...this._vertices];
|
|
748
753
|
const n = idAndVertices.length;
|
|
749
754
|
const costs = [];
|
|
@@ -758,7 +763,7 @@ export class AbstractGraph {
|
|
|
758
763
|
}
|
|
759
764
|
for (let i = 0; i < n; i++) {
|
|
760
765
|
for (let j = 0; j < n; j++) {
|
|
761
|
-
costs[i][j] =
|
|
766
|
+
costs[i][j] = this.getEdge(idAndVertices[i][1], idAndVertices[j][1])?.weight || Infinity;
|
|
762
767
|
}
|
|
763
768
|
}
|
|
764
769
|
for (let k = 0; k < n; k++) {
|
|
@@ -869,12 +874,11 @@ export class AbstractGraph {
|
|
|
869
874
|
const getSCCs = () => {
|
|
870
875
|
const SCCs = new Map();
|
|
871
876
|
lowMap.forEach((low, vertex) => {
|
|
872
|
-
var _a;
|
|
873
877
|
if (!SCCs.has(low)) {
|
|
874
878
|
SCCs.set(low, [vertex]);
|
|
875
879
|
}
|
|
876
880
|
else {
|
|
877
|
-
|
|
881
|
+
SCCs.get(low)?.push(vertex);
|
|
878
882
|
}
|
|
879
883
|
});
|
|
880
884
|
return SCCs;
|
|
@@ -915,3 +919,4 @@ export class AbstractGraph {
|
|
|
915
919
|
this._vertices = value;
|
|
916
920
|
}
|
|
917
921
|
}
|
|
922
|
+
exports.AbstractGraph = AbstractGraph;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DirectedGraph = exports.DirectedEdge = exports.DirectedVertex = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* data-structure-typed
|
|
3
6
|
*
|
|
@@ -5,9 +8,9 @@
|
|
|
5
8
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
9
|
* @license MIT License
|
|
7
10
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
const utils_1 = require("../../utils");
|
|
12
|
+
const abstract_graph_1 = require("./abstract-graph");
|
|
13
|
+
class DirectedVertex extends abstract_graph_1.AbstractVertex {
|
|
11
14
|
/**
|
|
12
15
|
* The constructor function initializes a vertex with an optional value.
|
|
13
16
|
* @param {VertexKey} key - The `key` parameter is of type `VertexKey` and represents the identifier of the vertex. It is
|
|
@@ -19,7 +22,8 @@ export class DirectedVertex extends AbstractVertex {
|
|
|
19
22
|
super(key, val);
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
|
-
|
|
25
|
+
exports.DirectedVertex = DirectedVertex;
|
|
26
|
+
class DirectedEdge extends abstract_graph_1.AbstractEdge {
|
|
23
27
|
/**
|
|
24
28
|
* The constructor function initializes the source and destination vertices of an edge, along with an optional weight
|
|
25
29
|
* and value.
|
|
@@ -36,12 +40,14 @@ export class DirectedEdge extends AbstractEdge {
|
|
|
36
40
|
this._src = src;
|
|
37
41
|
this._dest = dest;
|
|
38
42
|
}
|
|
43
|
+
_src;
|
|
39
44
|
get src() {
|
|
40
45
|
return this._src;
|
|
41
46
|
}
|
|
42
47
|
set src(v) {
|
|
43
48
|
this._src = v;
|
|
44
49
|
}
|
|
50
|
+
_dest;
|
|
45
51
|
get dest() {
|
|
46
52
|
return this._dest;
|
|
47
53
|
}
|
|
@@ -49,18 +55,19 @@ export class DirectedEdge extends AbstractEdge {
|
|
|
49
55
|
this._dest = v;
|
|
50
56
|
}
|
|
51
57
|
}
|
|
52
|
-
|
|
58
|
+
exports.DirectedEdge = DirectedEdge;
|
|
59
|
+
class DirectedGraph extends abstract_graph_1.AbstractGraph {
|
|
53
60
|
/**
|
|
54
61
|
* The constructor function initializes an instance of a class.
|
|
55
62
|
*/
|
|
56
63
|
constructor() {
|
|
57
64
|
super();
|
|
58
|
-
this._outEdgeMap = new Map();
|
|
59
|
-
this._inEdgeMap = new Map();
|
|
60
65
|
}
|
|
66
|
+
_outEdgeMap = new Map();
|
|
61
67
|
get outEdgeMap() {
|
|
62
68
|
return this._outEdgeMap;
|
|
63
69
|
}
|
|
70
|
+
_inEdgeMap = new Map();
|
|
64
71
|
get inEdgeMap() {
|
|
65
72
|
return this._inEdgeMap;
|
|
66
73
|
}
|
|
@@ -78,7 +85,7 @@ export class DirectedGraph extends AbstractGraph {
|
|
|
78
85
|
* @returns a new instance of a DirectedVertex object, casted as type V.
|
|
79
86
|
*/
|
|
80
87
|
createVertex(key, val) {
|
|
81
|
-
return new DirectedVertex(key, val
|
|
88
|
+
return new DirectedVertex(key, val ?? key);
|
|
82
89
|
}
|
|
83
90
|
/**
|
|
84
91
|
* In TypeScript, a subclass inherits the interface implementation of its parent class, without needing to implement the same interface again in the subclass. This behavior differs from Java's approach. In Java, if a parent class implements an interface, the subclass needs to explicitly implement the same interface, even if the parent class has already implemented it.
|
|
@@ -95,7 +102,7 @@ export class DirectedGraph extends AbstractGraph {
|
|
|
95
102
|
* @returns a new instance of a DirectedEdge object, casted as type E.
|
|
96
103
|
*/
|
|
97
104
|
createEdge(src, dest, weight, val) {
|
|
98
|
-
return new DirectedEdge(src, dest, weight
|
|
105
|
+
return new DirectedEdge(src, dest, weight ?? 1, val);
|
|
99
106
|
}
|
|
100
107
|
/**
|
|
101
108
|
* The `getEdge` function retrieves an edge between two vertices based on their source and destination IDs.
|
|
@@ -134,11 +141,11 @@ export class DirectedGraph extends AbstractGraph {
|
|
|
134
141
|
}
|
|
135
142
|
const srcOutEdges = this._outEdgeMap.get(src);
|
|
136
143
|
if (srcOutEdges) {
|
|
137
|
-
arrayRemove(srcOutEdges, (edge) => edge.dest === dest.key);
|
|
144
|
+
(0, utils_1.arrayRemove)(srcOutEdges, (edge) => edge.dest === dest.key);
|
|
138
145
|
}
|
|
139
146
|
const destInEdges = this._inEdgeMap.get(dest);
|
|
140
147
|
if (destInEdges) {
|
|
141
|
-
removed = arrayRemove(destInEdges, (edge) => edge.src === src.key)[0] || null;
|
|
148
|
+
removed = (0, utils_1.arrayRemove)(destInEdges, (edge) => edge.src === src.key)[0] || null;
|
|
142
149
|
}
|
|
143
150
|
return removed;
|
|
144
151
|
}
|
|
@@ -155,11 +162,11 @@ export class DirectedGraph extends AbstractGraph {
|
|
|
155
162
|
if (src && dest) {
|
|
156
163
|
const srcOutEdges = this._outEdgeMap.get(src);
|
|
157
164
|
if (srcOutEdges && srcOutEdges.length > 0) {
|
|
158
|
-
arrayRemove(srcOutEdges, (edge) => edge.src === src.key);
|
|
165
|
+
(0, utils_1.arrayRemove)(srcOutEdges, (edge) => edge.src === src.key);
|
|
159
166
|
}
|
|
160
167
|
const destInEdges = this._inEdgeMap.get(dest);
|
|
161
168
|
if (destInEdges && destInEdges.length > 0) {
|
|
162
|
-
removed = arrayRemove(destInEdges, (edge) => edge.dest === dest.key)[0];
|
|
169
|
+
removed = (0, utils_1.arrayRemove)(destInEdges, (edge) => edge.dest === dest.key)[0];
|
|
163
170
|
}
|
|
164
171
|
}
|
|
165
172
|
return removed;
|
|
@@ -285,7 +292,7 @@ export class DirectedGraph extends AbstractGraph {
|
|
|
285
292
|
* @returns an array of vertices or vertex IDs in topological order. If there is a cycle in the graph, it returns null.
|
|
286
293
|
*/
|
|
287
294
|
topologicalSort(propertyName) {
|
|
288
|
-
propertyName = propertyName
|
|
295
|
+
propertyName = propertyName ?? 'key';
|
|
289
296
|
// When judging whether there is a cycle in the undirected graph, all nodes with degree of **<= 1** are enqueued
|
|
290
297
|
// When judging whether there is a cycle in the directed graph, all nodes with **in degree = 0** are enqueued
|
|
291
298
|
const statusMap = new Map();
|
|
@@ -414,3 +421,4 @@ export class DirectedGraph extends AbstractGraph {
|
|
|
414
421
|
this._inEdgeMap = value;
|
|
415
422
|
}
|
|
416
423
|
}
|
|
424
|
+
exports.DirectedGraph = DirectedGraph;
|
|
@@ -0,0 +1,20 @@
|
|
|
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("./abstract-graph"), exports);
|
|
18
|
+
__exportStar(require("./directed-graph"), exports);
|
|
19
|
+
__exportStar(require("./undirected-graph"), exports);
|
|
20
|
+
__exportStar(require("./map-graph"), exports);
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MapGraph = exports.MapEdge = exports.MapVertex = void 0;
|
|
4
|
+
const directed_graph_1 = require("./directed-graph");
|
|
5
|
+
class MapVertex extends directed_graph_1.DirectedVertex {
|
|
3
6
|
/**
|
|
4
7
|
* The constructor function initializes an object with an key, latitude, longitude, and an optional value.
|
|
5
8
|
* @param {VertexKey} key - The `key` parameter is of type `VertexKey` and represents the identifier of the vertex.
|
|
@@ -17,12 +20,14 @@ export class MapVertex extends DirectedVertex {
|
|
|
17
20
|
this._lat = lat;
|
|
18
21
|
this._long = long;
|
|
19
22
|
}
|
|
23
|
+
_lat;
|
|
20
24
|
get lat() {
|
|
21
25
|
return this._lat;
|
|
22
26
|
}
|
|
23
27
|
set lat(value) {
|
|
24
28
|
this._lat = value;
|
|
25
29
|
}
|
|
30
|
+
_long;
|
|
26
31
|
get long() {
|
|
27
32
|
return this._long;
|
|
28
33
|
}
|
|
@@ -30,7 +35,8 @@ export class MapVertex extends DirectedVertex {
|
|
|
30
35
|
this._long = value;
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
|
-
|
|
38
|
+
exports.MapVertex = MapVertex;
|
|
39
|
+
class MapEdge extends directed_graph_1.DirectedEdge {
|
|
34
40
|
/**
|
|
35
41
|
* The constructor function initializes a new instance of a class with the given source, destination, weight, and
|
|
36
42
|
* value.
|
|
@@ -45,7 +51,8 @@ export class MapEdge extends DirectedEdge {
|
|
|
45
51
|
super(src, dest, weight, val);
|
|
46
52
|
}
|
|
47
53
|
}
|
|
48
|
-
|
|
54
|
+
exports.MapEdge = MapEdge;
|
|
55
|
+
class MapGraph extends directed_graph_1.DirectedGraph {
|
|
49
56
|
/**
|
|
50
57
|
* The constructor function initializes the origin and bottomRight properties of a MapGraphCoordinate object.
|
|
51
58
|
* @param {MapGraphCoordinate} origin - The `origin` parameter is a `MapGraphCoordinate` object that represents the
|
|
@@ -57,16 +64,17 @@ export class MapGraph extends DirectedGraph {
|
|
|
57
64
|
*/
|
|
58
65
|
constructor(origin, bottomRight) {
|
|
59
66
|
super();
|
|
60
|
-
this._origin = [0, 0];
|
|
61
67
|
this._origin = origin;
|
|
62
68
|
this._bottomRight = bottomRight;
|
|
63
69
|
}
|
|
70
|
+
_origin = [0, 0];
|
|
64
71
|
get origin() {
|
|
65
72
|
return this._origin;
|
|
66
73
|
}
|
|
67
74
|
set origin(value) {
|
|
68
75
|
this._origin = value;
|
|
69
76
|
}
|
|
77
|
+
_bottomRight;
|
|
70
78
|
get bottomRight() {
|
|
71
79
|
return this._bottomRight;
|
|
72
80
|
}
|
|
@@ -103,3 +111,4 @@ export class MapGraph extends DirectedGraph {
|
|
|
103
111
|
return new MapEdge(src, dest, weight, val);
|
|
104
112
|
}
|
|
105
113
|
}
|
|
114
|
+
exports.MapGraph = MapGraph;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UndirectedGraph = exports.UndirectedEdge = exports.UndirectedVertex = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* data-structure-typed
|
|
3
6
|
*
|
|
@@ -5,9 +8,9 @@
|
|
|
5
8
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
9
|
* @license MIT License
|
|
7
10
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
+
const utils_1 = require("../../utils");
|
|
12
|
+
const abstract_graph_1 = require("./abstract-graph");
|
|
13
|
+
class UndirectedVertex extends abstract_graph_1.AbstractVertex {
|
|
11
14
|
/**
|
|
12
15
|
* The constructor function initializes a vertex with an optional value.
|
|
13
16
|
* @param {VertexKey} key - The `key` parameter is of type `VertexKey` and represents the identifier of the vertex. It is
|
|
@@ -19,7 +22,8 @@ export class UndirectedVertex extends AbstractVertex {
|
|
|
19
22
|
super(key, val);
|
|
20
23
|
}
|
|
21
24
|
}
|
|
22
|
-
|
|
25
|
+
exports.UndirectedVertex = UndirectedVertex;
|
|
26
|
+
class UndirectedEdge extends abstract_graph_1.AbstractEdge {
|
|
23
27
|
/**
|
|
24
28
|
* The constructor function creates an instance of a class with two vertex IDs, an optional weight, and an optional
|
|
25
29
|
* value.
|
|
@@ -34,6 +38,7 @@ export class UndirectedEdge extends AbstractEdge {
|
|
|
34
38
|
super(weight, val);
|
|
35
39
|
this._vertices = [v1, v2];
|
|
36
40
|
}
|
|
41
|
+
_vertices;
|
|
37
42
|
get vertices() {
|
|
38
43
|
return this._vertices;
|
|
39
44
|
}
|
|
@@ -41,7 +46,8 @@ export class UndirectedEdge extends AbstractEdge {
|
|
|
41
46
|
this._vertices = v;
|
|
42
47
|
}
|
|
43
48
|
}
|
|
44
|
-
|
|
49
|
+
exports.UndirectedEdge = UndirectedEdge;
|
|
50
|
+
class UndirectedGraph extends abstract_graph_1.AbstractGraph {
|
|
45
51
|
/**
|
|
46
52
|
* The constructor initializes a new Map object to store edges.
|
|
47
53
|
*/
|
|
@@ -49,6 +55,7 @@ export class UndirectedGraph extends AbstractGraph {
|
|
|
49
55
|
super();
|
|
50
56
|
this._edges = new Map();
|
|
51
57
|
}
|
|
58
|
+
_edges;
|
|
52
59
|
get edges() {
|
|
53
60
|
return this._edges;
|
|
54
61
|
}
|
|
@@ -62,7 +69,7 @@ export class UndirectedGraph extends AbstractGraph {
|
|
|
62
69
|
* @returns The method is returning a new instance of the `UndirectedVertex` class, casted as type `V`.
|
|
63
70
|
*/
|
|
64
71
|
createVertex(key, val) {
|
|
65
|
-
return new UndirectedVertex(key, val
|
|
72
|
+
return new UndirectedVertex(key, val ?? key);
|
|
66
73
|
}
|
|
67
74
|
/**
|
|
68
75
|
* The function creates an undirected edge between two vertices with an optional weight and value.
|
|
@@ -75,7 +82,7 @@ export class UndirectedGraph extends AbstractGraph {
|
|
|
75
82
|
* @returns a new instance of the `UndirectedEdge` class, which is casted as type `E`.
|
|
76
83
|
*/
|
|
77
84
|
createEdge(v1, v2, weight, val) {
|
|
78
|
-
return new UndirectedEdge(v1, v2, weight
|
|
85
|
+
return new UndirectedEdge(v1, v2, weight ?? 1, val);
|
|
79
86
|
}
|
|
80
87
|
/**
|
|
81
88
|
* The function `getEdge` returns the first edge that connects two vertices, or null if no such edge exists.
|
|
@@ -86,13 +93,12 @@ export class UndirectedGraph extends AbstractGraph {
|
|
|
86
93
|
* @returns an edge (E) or null.
|
|
87
94
|
*/
|
|
88
95
|
getEdge(v1, v2) {
|
|
89
|
-
var _a;
|
|
90
96
|
let edges = [];
|
|
91
97
|
if (v1 !== null && v2 !== null) {
|
|
92
98
|
const vertex1 = this._getVertex(v1);
|
|
93
99
|
const vertex2 = this._getVertex(v2);
|
|
94
100
|
if (vertex1 && vertex2) {
|
|
95
|
-
edges =
|
|
101
|
+
edges = this._edges.get(vertex1)?.filter(e => e.vertices.includes(vertex2.key));
|
|
96
102
|
}
|
|
97
103
|
}
|
|
98
104
|
return edges ? edges[0] || null : null;
|
|
@@ -113,11 +119,11 @@ export class UndirectedGraph extends AbstractGraph {
|
|
|
113
119
|
const v1Edges = this._edges.get(vertex1);
|
|
114
120
|
let removed = null;
|
|
115
121
|
if (v1Edges) {
|
|
116
|
-
removed = arrayRemove(v1Edges, (e) => e.vertices.includes(vertex2.key))[0] || null;
|
|
122
|
+
removed = (0, utils_1.arrayRemove)(v1Edges, (e) => e.vertices.includes(vertex2.key))[0] || null;
|
|
117
123
|
}
|
|
118
124
|
const v2Edges = this._edges.get(vertex2);
|
|
119
125
|
if (v2Edges) {
|
|
120
|
-
arrayRemove(v2Edges, (e) => e.vertices.includes(vertex1.key));
|
|
126
|
+
(0, utils_1.arrayRemove)(v2Edges, (e) => e.vertices.includes(vertex1.key));
|
|
121
127
|
}
|
|
122
128
|
return removed;
|
|
123
129
|
}
|
|
@@ -137,10 +143,9 @@ export class UndirectedGraph extends AbstractGraph {
|
|
|
137
143
|
* edges connected to that vertex.
|
|
138
144
|
*/
|
|
139
145
|
degreeOf(vertexOrKey) {
|
|
140
|
-
var _a;
|
|
141
146
|
const vertex = this._getVertex(vertexOrKey);
|
|
142
147
|
if (vertex) {
|
|
143
|
-
return
|
|
148
|
+
return this._edges.get(vertex)?.length || 0;
|
|
144
149
|
}
|
|
145
150
|
else {
|
|
146
151
|
return 0;
|
|
@@ -244,3 +249,4 @@ export class UndirectedGraph extends AbstractGraph {
|
|
|
244
249
|
this._edges = v;
|
|
245
250
|
}
|
|
246
251
|
}
|
|
252
|
+
exports.UndirectedGraph = UndirectedGraph;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CoordinateMap = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* data-structure-typed
|
|
3
6
|
*
|
|
@@ -5,13 +8,13 @@
|
|
|
5
8
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
9
|
* @license MIT License
|
|
7
10
|
*/
|
|
8
|
-
|
|
11
|
+
class CoordinateMap extends Map {
|
|
9
12
|
constructor(joint) {
|
|
10
13
|
super();
|
|
11
|
-
this._joint = '_';
|
|
12
14
|
if (joint !== undefined)
|
|
13
15
|
this._joint = joint;
|
|
14
16
|
}
|
|
17
|
+
_joint = '_';
|
|
15
18
|
get joint() {
|
|
16
19
|
return this._joint;
|
|
17
20
|
}
|
|
@@ -59,3 +62,4 @@ export class CoordinateMap extends Map {
|
|
|
59
62
|
this._joint = v;
|
|
60
63
|
}
|
|
61
64
|
}
|
|
65
|
+
exports.CoordinateMap = CoordinateMap;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CoordinateSet = void 0;
|
|
1
4
|
/**
|
|
2
5
|
* data-structure-typed
|
|
3
6
|
*
|
|
@@ -5,13 +8,13 @@
|
|
|
5
8
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
9
|
* @license MIT License
|
|
7
10
|
*/
|
|
8
|
-
|
|
11
|
+
class CoordinateSet extends Set {
|
|
9
12
|
constructor(joint) {
|
|
10
13
|
super();
|
|
11
|
-
this._joint = '_';
|
|
12
14
|
if (joint !== undefined)
|
|
13
15
|
this._joint = joint;
|
|
14
16
|
}
|
|
17
|
+
_joint = '_';
|
|
15
18
|
get joint() {
|
|
16
19
|
return this._joint;
|
|
17
20
|
}
|
|
@@ -49,3 +52,4 @@ export class CoordinateSet extends Set {
|
|
|
49
52
|
this._joint = v;
|
|
50
53
|
}
|
|
51
54
|
}
|
|
55
|
+
exports.CoordinateSet = CoordinateSet;
|