data-structure-typed 2.0.5 → 2.1.1
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/CHANGELOG.md +5 -1
- package/COMMANDS.md +27 -0
- package/README.md +5 -34
- package/benchmark/report.html +13 -77
- package/benchmark/report.json +152 -184
- package/dist/cjs/index.cjs +13062 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/esm/index.mjs +12984 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/index.cjs +13091 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +13013 -0
- package/dist/index.js.map +1 -0
- package/dist/types/data-structures/base/iterable-element-base.d.ts +219 -0
- package/dist/types/data-structures/base/iterable-entry-base.d.ts +144 -0
- package/dist/types/data-structures/base/linear-base.d.ts +335 -0
- package/dist/types/data-structures/binary-tree/avl-tree-counter.d.ts +182 -0
- package/dist/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +135 -0
- package/dist/types/data-structures/binary-tree/avl-tree.d.ts +291 -0
- package/dist/types/data-structures/binary-tree/binary-tree.d.ts +754 -0
- package/dist/types/data-structures/binary-tree/bst.d.ts +413 -0
- package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +208 -0
- package/dist/types/data-structures/binary-tree/tree-counter.d.ts +190 -0
- package/dist/{esm → types}/data-structures/binary-tree/tree-multi-map.d.ts +72 -69
- package/dist/types/data-structures/graph/abstract-graph.d.ts +340 -0
- package/dist/types/data-structures/graph/directed-graph.d.ts +207 -0
- package/dist/types/data-structures/graph/map-graph.d.ts +78 -0
- package/dist/types/data-structures/graph/undirected-graph.d.ts +188 -0
- package/dist/types/data-structures/hash/hash-map.d.ts +345 -0
- package/dist/types/data-structures/heap/heap.d.ts +503 -0
- package/dist/types/data-structures/heap/max-heap.d.ts +32 -0
- package/dist/types/data-structures/heap/min-heap.d.ts +33 -0
- package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +769 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +451 -0
- package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +27 -0
- package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +27 -0
- package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +26 -0
- package/dist/types/data-structures/priority-queue/priority-queue.d.ts +15 -0
- package/dist/types/data-structures/queue/deque.d.ts +431 -0
- package/dist/types/data-structures/queue/queue.d.ts +308 -0
- package/dist/{cjs → types}/data-structures/stack/stack.d.ts +124 -102
- package/dist/types/data-structures/trie/trie.d.ts +350 -0
- package/dist/types/interfaces/binary-tree.d.ts +59 -0
- package/dist/types/interfaces/graph.d.ts +21 -0
- package/dist/{cjs → types}/types/data-structures/base/base.d.ts +1 -1
- package/dist/{esm → types}/types/data-structures/graph/abstract-graph.d.ts +4 -0
- package/dist/{cjs → types}/types/utils/utils.d.ts +1 -0
- package/dist/{esm → types}/utils/utils.d.ts +1 -1
- package/dist/umd/data-structure-typed.js +4693 -6484
- package/dist/umd/data-structure-typed.js.map +1 -0
- package/dist/umd/data-structure-typed.min.js +8 -6
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/jest.integration.config.js +3 -0
- package/package.json +13 -12
- package/src/data-structures/base/iterable-element-base.ts +238 -115
- package/src/data-structures/base/iterable-entry-base.ts +96 -120
- package/src/data-structures/base/linear-base.ts +271 -277
- package/src/data-structures/binary-tree/avl-tree-counter.ts +196 -217
- package/src/data-structures/binary-tree/avl-tree-multi-map.ts +188 -102
- package/src/data-structures/binary-tree/avl-tree.ts +237 -206
- package/src/data-structures/binary-tree/binary-tree.ts +665 -896
- package/src/data-structures/binary-tree/bst.ts +565 -572
- package/src/data-structures/binary-tree/red-black-tree.ts +157 -223
- package/src/data-structures/binary-tree/tree-counter.ts +195 -219
- package/src/data-structures/binary-tree/tree-multi-map.ts +127 -98
- package/src/data-structures/graph/abstract-graph.ts +339 -264
- package/src/data-structures/graph/directed-graph.ts +146 -236
- package/src/data-structures/graph/map-graph.ts +63 -60
- package/src/data-structures/graph/undirected-graph.ts +129 -152
- package/src/data-structures/hash/hash-map.ts +274 -496
- package/src/data-structures/heap/heap.ts +389 -402
- package/src/data-structures/heap/max-heap.ts +12 -76
- package/src/data-structures/heap/min-heap.ts +13 -76
- package/src/data-structures/linked-list/doubly-linked-list.ts +426 -530
- package/src/data-structures/linked-list/singly-linked-list.ts +495 -517
- package/src/data-structures/linked-list/skip-linked-list.ts +1 -108
- package/src/data-structures/priority-queue/max-priority-queue.ts +12 -87
- package/src/data-structures/priority-queue/min-priority-queue.ts +11 -88
- package/src/data-structures/priority-queue/priority-queue.ts +3 -92
- package/src/data-structures/queue/deque.ts +381 -357
- package/src/data-structures/queue/queue.ts +310 -264
- package/src/data-structures/stack/stack.ts +217 -131
- package/src/data-structures/trie/trie.ts +240 -175
- package/src/interfaces/binary-tree.ts +240 -6
- package/src/interfaces/graph.ts +37 -0
- package/src/types/data-structures/base/base.ts +5 -5
- package/src/types/data-structures/graph/abstract-graph.ts +5 -0
- package/src/types/utils/utils.ts +2 -0
- package/src/utils/utils.ts +9 -14
- package/test/integration/all-in-one.test.ts +1 -1
- package/test/integration/index.html +1 -1
- package/test/performance/benchmark-runner.ts +528 -0
- package/test/performance/data-structures/comparison/comparison.test.ts +27 -57
- package/test/performance/reportor.mjs +43 -43
- package/test/performance/runner-config.json +39 -0
- package/test/performance/single-suite-runner.ts +69 -0
- package/test/unit/data-structures/binary-tree/avl-tree-counter.test.ts +3 -3
- package/test/unit/data-structures/binary-tree/avl-tree-multi-map.test.ts +5 -5
- package/test/unit/data-structures/binary-tree/avl-tree.test.ts +4 -4
- package/test/unit/data-structures/binary-tree/binary-tree.test.ts +350 -90
- package/test/unit/data-structures/binary-tree/bst.test.ts +12 -9
- package/test/unit/data-structures/binary-tree/red-black-tree.test.ts +2 -2
- package/test/unit/data-structures/binary-tree/tree-counter.test.ts +25 -24
- package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +112 -4
- package/test/unit/data-structures/graph/abstract-graph.test.ts +0 -4
- package/test/unit/data-structures/graph/directed-graph.test.ts +1 -1
- package/test/unit/data-structures/heap/heap.test.ts +14 -21
- package/test/unit/data-structures/heap/max-heap.test.ts +5 -9
- package/test/unit/data-structures/heap/min-heap.test.ts +1 -4
- package/test/unit/data-structures/linked-list/doubly-linked-list.test.ts +14 -14
- package/test/unit/data-structures/linked-list/singly-linked-list.test.ts +0 -7
- package/test/unit/data-structures/priority-queue/max-priority-queue.test.ts +8 -11
- package/test/unit/data-structures/priority-queue/min-priority-queue.test.ts +1 -4
- package/test/unit/data-structures/priority-queue/priority-queue.test.ts +1 -4
- package/test/unit/data-structures/queue/queue.test.ts +4 -5
- package/test/unit/utils/utils.test.ts +0 -1
- package/tsconfig-base.json +20 -20
- package/tsconfig-types.json +17 -0
- package/tsconfig.test.json +8 -0
- package/tsup.config.js +11 -22
- package/tsup.node.config.ts +37 -0
- package/dist/cjs/common/index.js +0 -29
- package/dist/cjs/common/index.js.map +0 -1
- package/dist/cjs/data-structures/base/index.js +0 -19
- package/dist/cjs/data-structures/base/index.js.map +0 -1
- package/dist/cjs/data-structures/base/iterable-element-base.d.ts +0 -116
- package/dist/cjs/data-structures/base/iterable-element-base.js +0 -202
- package/dist/cjs/data-structures/base/iterable-element-base.js.map +0 -1
- package/dist/cjs/data-structures/base/iterable-entry-base.d.ts +0 -168
- package/dist/cjs/data-structures/base/iterable-entry-base.js +0 -241
- package/dist/cjs/data-structures/base/iterable-entry-base.js.map +0 -1
- package/dist/cjs/data-structures/base/linear-base.d.ts +0 -277
- package/dist/cjs/data-structures/base/linear-base.js +0 -553
- package/dist/cjs/data-structures/base/linear-base.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree-counter.d.ts +0 -214
- package/dist/cjs/data-structures/binary-tree/avl-tree-counter.js +0 -409
- package/dist/cjs/data-structures/binary-tree/avl-tree-counter.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.d.ts +0 -104
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js +0 -203
- package/dist/cjs/data-structures/binary-tree/avl-tree-multi-map.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/avl-tree.d.ts +0 -302
- package/dist/cjs/data-structures/binary-tree/avl-tree.js +0 -599
- package/dist/cjs/data-structures/binary-tree/avl-tree.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.js +0 -295
- package/dist/cjs/data-structures/binary-tree/binary-indexed-tree.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/binary-tree.d.ts +0 -910
- package/dist/cjs/data-structures/binary-tree/binary-tree.js +0 -2197
- package/dist/cjs/data-structures/binary-tree/binary-tree.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/bst.d.ts +0 -461
- package/dist/cjs/data-structures/binary-tree/bst.js +0 -880
- package/dist/cjs/data-structures/binary-tree/bst.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/index.js +0 -27
- package/dist/cjs/data-structures/binary-tree/index.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/red-black-tree.d.ts +0 -280
- package/dist/cjs/data-structures/binary-tree/red-black-tree.js +0 -642
- package/dist/cjs/data-structures/binary-tree/red-black-tree.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/segment-tree.js +0 -298
- package/dist/cjs/data-structures/binary-tree/segment-tree.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/tree-counter.d.ts +0 -212
- package/dist/cjs/data-structures/binary-tree/tree-counter.js +0 -445
- package/dist/cjs/data-structures/binary-tree/tree-counter.js.map +0 -1
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.d.ts +0 -267
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js +0 -365
- package/dist/cjs/data-structures/binary-tree/tree-multi-map.js.map +0 -1
- package/dist/cjs/data-structures/graph/abstract-graph.d.ts +0 -335
- package/dist/cjs/data-structures/graph/abstract-graph.js +0 -867
- package/dist/cjs/data-structures/graph/abstract-graph.js.map +0 -1
- package/dist/cjs/data-structures/graph/directed-graph.d.ts +0 -323
- package/dist/cjs/data-structures/graph/directed-graph.js +0 -613
- package/dist/cjs/data-structures/graph/directed-graph.js.map +0 -1
- package/dist/cjs/data-structures/graph/index.js +0 -21
- package/dist/cjs/data-structures/graph/index.js.map +0 -1
- package/dist/cjs/data-structures/graph/map-graph.d.ts +0 -84
- package/dist/cjs/data-structures/graph/map-graph.js +0 -111
- package/dist/cjs/data-structures/graph/map-graph.js.map +0 -1
- package/dist/cjs/data-structures/graph/undirected-graph.d.ts +0 -231
- package/dist/cjs/data-structures/graph/undirected-graph.js +0 -445
- package/dist/cjs/data-structures/graph/undirected-graph.js.map +0 -1
- package/dist/cjs/data-structures/hash/hash-map.d.ts +0 -519
- package/dist/cjs/data-structures/hash/hash-map.js +0 -880
- package/dist/cjs/data-structures/hash/hash-map.js.map +0 -1
- package/dist/cjs/data-structures/hash/index.js +0 -18
- package/dist/cjs/data-structures/hash/index.js.map +0 -1
- package/dist/cjs/data-structures/heap/heap.d.ts +0 -578
- package/dist/cjs/data-structures/heap/heap.js +0 -911
- package/dist/cjs/data-structures/heap/heap.js.map +0 -1
- package/dist/cjs/data-structures/heap/index.js +0 -20
- package/dist/cjs/data-structures/heap/index.js.map +0 -1
- package/dist/cjs/data-structures/heap/max-heap.d.ts +0 -68
- package/dist/cjs/data-structures/heap/max-heap.js +0 -96
- package/dist/cjs/data-structures/heap/max-heap.js.map +0 -1
- package/dist/cjs/data-structures/heap/min-heap.d.ts +0 -68
- package/dist/cjs/data-structures/heap/min-heap.js +0 -87
- package/dist/cjs/data-structures/heap/min-heap.js.map +0 -1
- package/dist/cjs/data-structures/index.js +0 -29
- package/dist/cjs/data-structures/index.js.map +0 -1
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.d.ts +0 -885
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js +0 -1238
- package/dist/cjs/data-structures/linked-list/doubly-linked-list.js.map +0 -1
- package/dist/cjs/data-structures/linked-list/index.js +0 -20
- package/dist/cjs/data-structures/linked-list/index.js.map +0 -1
- package/dist/cjs/data-structures/linked-list/singly-linked-list.d.ts +0 -500
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js +0 -870
- package/dist/cjs/data-structures/linked-list/singly-linked-list.js.map +0 -1
- package/dist/cjs/data-structures/linked-list/skip-linked-list.d.ts +0 -134
- package/dist/cjs/data-structures/linked-list/skip-linked-list.js +0 -245
- package/dist/cjs/data-structures/linked-list/skip-linked-list.js.map +0 -1
- package/dist/cjs/data-structures/matrix/index.js +0 -19
- package/dist/cjs/data-structures/matrix/index.js.map +0 -1
- package/dist/cjs/data-structures/matrix/matrix.js +0 -449
- package/dist/cjs/data-structures/matrix/matrix.js.map +0 -1
- package/dist/cjs/data-structures/matrix/navigator.js +0 -112
- package/dist/cjs/data-structures/matrix/navigator.js.map +0 -1
- package/dist/cjs/data-structures/priority-queue/index.js +0 -20
- package/dist/cjs/data-structures/priority-queue/index.js.map +0 -1
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.d.ts +0 -71
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.js +0 -102
- package/dist/cjs/data-structures/priority-queue/max-priority-queue.js.map +0 -1
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.d.ts +0 -72
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.js +0 -94
- package/dist/cjs/data-structures/priority-queue/min-priority-queue.js.map +0 -1
- package/dist/cjs/data-structures/priority-queue/priority-queue.d.ts +0 -74
- package/dist/cjs/data-structures/priority-queue/priority-queue.js +0 -96
- package/dist/cjs/data-structures/priority-queue/priority-queue.js.map +0 -1
- package/dist/cjs/data-structures/queue/deque.d.ts +0 -458
- package/dist/cjs/data-structures/queue/deque.js +0 -919
- package/dist/cjs/data-structures/queue/deque.js.map +0 -1
- package/dist/cjs/data-structures/queue/index.js +0 -19
- package/dist/cjs/data-structures/queue/index.js.map +0 -1
- package/dist/cjs/data-structures/queue/queue.d.ts +0 -329
- package/dist/cjs/data-structures/queue/queue.js +0 -457
- package/dist/cjs/data-structures/queue/queue.js.map +0 -1
- package/dist/cjs/data-structures/stack/index.js +0 -18
- package/dist/cjs/data-structures/stack/index.js.map +0 -1
- package/dist/cjs/data-structures/stack/stack.js +0 -346
- package/dist/cjs/data-structures/stack/stack.js.map +0 -1
- package/dist/cjs/data-structures/tree/index.js +0 -18
- package/dist/cjs/data-structures/tree/index.js.map +0 -1
- package/dist/cjs/data-structures/tree/tree.js +0 -108
- package/dist/cjs/data-structures/tree/tree.js.map +0 -1
- package/dist/cjs/data-structures/trie/index.js +0 -18
- package/dist/cjs/data-structures/trie/index.js.map +0 -1
- package/dist/cjs/data-structures/trie/trie.d.ts +0 -351
- package/dist/cjs/data-structures/trie/trie.js +0 -594
- package/dist/cjs/data-structures/trie/trie.js.map +0 -1
- package/dist/cjs/index.js +0 -22
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/interfaces/binary-tree.d.ts +0 -9
- package/dist/cjs/interfaces/binary-tree.js +0 -3
- package/dist/cjs/interfaces/binary-tree.js.map +0 -1
- package/dist/cjs/interfaces/doubly-linked-list.js +0 -3
- package/dist/cjs/interfaces/doubly-linked-list.js.map +0 -1
- package/dist/cjs/interfaces/graph.d.ts +0 -5
- package/dist/cjs/interfaces/graph.js +0 -3
- package/dist/cjs/interfaces/graph.js.map +0 -1
- package/dist/cjs/interfaces/heap.js +0 -3
- package/dist/cjs/interfaces/heap.js.map +0 -1
- package/dist/cjs/interfaces/index.js +0 -25
- package/dist/cjs/interfaces/index.js.map +0 -1
- package/dist/cjs/interfaces/navigator.js +0 -3
- package/dist/cjs/interfaces/navigator.js.map +0 -1
- package/dist/cjs/interfaces/priority-queue.js +0 -3
- package/dist/cjs/interfaces/priority-queue.js.map +0 -1
- package/dist/cjs/interfaces/segment-tree.js +0 -3
- package/dist/cjs/interfaces/segment-tree.js.map +0 -1
- package/dist/cjs/interfaces/singly-linked-list.js +0 -3
- package/dist/cjs/interfaces/singly-linked-list.js.map +0 -1
- package/dist/cjs/types/common.js +0 -3
- package/dist/cjs/types/common.js.map +0 -1
- package/dist/cjs/types/data-structures/base/base.js +0 -3
- package/dist/cjs/types/data-structures/base/base.js.map +0 -1
- package/dist/cjs/types/data-structures/base/index.js +0 -18
- package/dist/cjs/types/data-structures/base/index.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/avl-tree-counter.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/avl-tree-counter.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/avl-tree-multi-map.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/avl-tree-multi-map.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/avl-tree.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/avl-tree.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/binary-indexed-tree.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/binary-indexed-tree.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/binary-tree.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/bst.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/bst.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/index.js +0 -26
- package/dist/cjs/types/data-structures/binary-tree/index.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/red-black-tree.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/red-black-tree.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/segment-tree.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/segment-tree.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/tree-counter.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/tree-counter.js.map +0 -1
- package/dist/cjs/types/data-structures/binary-tree/tree-multi-map.js +0 -3
- package/dist/cjs/types/data-structures/binary-tree/tree-multi-map.js.map +0 -1
- package/dist/cjs/types/data-structures/graph/abstract-graph.d.ts +0 -10
- package/dist/cjs/types/data-structures/graph/abstract-graph.js +0 -3
- package/dist/cjs/types/data-structures/graph/abstract-graph.js.map +0 -1
- package/dist/cjs/types/data-structures/graph/directed-graph.js +0 -3
- package/dist/cjs/types/data-structures/graph/directed-graph.js.map +0 -1
- package/dist/cjs/types/data-structures/graph/index.js +0 -20
- package/dist/cjs/types/data-structures/graph/index.js.map +0 -1
- package/dist/cjs/types/data-structures/graph/map-graph.js +0 -3
- package/dist/cjs/types/data-structures/graph/map-graph.js.map +0 -1
- package/dist/cjs/types/data-structures/graph/undirected-graph.js +0 -3
- package/dist/cjs/types/data-structures/graph/undirected-graph.js.map +0 -1
- package/dist/cjs/types/data-structures/hash/hash-map.js +0 -3
- package/dist/cjs/types/data-structures/hash/hash-map.js.map +0 -1
- package/dist/cjs/types/data-structures/hash/index.js +0 -18
- package/dist/cjs/types/data-structures/hash/index.js.map +0 -1
- package/dist/cjs/types/data-structures/heap/heap.js +0 -3
- package/dist/cjs/types/data-structures/heap/heap.js.map +0 -1
- package/dist/cjs/types/data-structures/heap/index.js +0 -18
- package/dist/cjs/types/data-structures/heap/index.js.map +0 -1
- package/dist/cjs/types/data-structures/heap/max-heap.js +0 -3
- package/dist/cjs/types/data-structures/heap/max-heap.js.map +0 -1
- package/dist/cjs/types/data-structures/heap/min-heap.js +0 -3
- package/dist/cjs/types/data-structures/heap/min-heap.js.map +0 -1
- package/dist/cjs/types/data-structures/index.js +0 -29
- package/dist/cjs/types/data-structures/index.js.map +0 -1
- package/dist/cjs/types/data-structures/linked-list/doubly-linked-list.js +0 -3
- package/dist/cjs/types/data-structures/linked-list/doubly-linked-list.js.map +0 -1
- package/dist/cjs/types/data-structures/linked-list/index.js +0 -20
- package/dist/cjs/types/data-structures/linked-list/index.js.map +0 -1
- package/dist/cjs/types/data-structures/linked-list/singly-linked-list.js +0 -3
- package/dist/cjs/types/data-structures/linked-list/singly-linked-list.js.map +0 -1
- package/dist/cjs/types/data-structures/linked-list/skip-linked-list.js +0 -3
- package/dist/cjs/types/data-structures/linked-list/skip-linked-list.js.map +0 -1
- package/dist/cjs/types/data-structures/matrix/index.js +0 -19
- package/dist/cjs/types/data-structures/matrix/index.js.map +0 -1
- package/dist/cjs/types/data-structures/matrix/matrix.js +0 -3
- package/dist/cjs/types/data-structures/matrix/matrix.js.map +0 -1
- package/dist/cjs/types/data-structures/matrix/navigator.js +0 -3
- package/dist/cjs/types/data-structures/matrix/navigator.js.map +0 -1
- package/dist/cjs/types/data-structures/priority-queue/index.js +0 -20
- package/dist/cjs/types/data-structures/priority-queue/index.js.map +0 -1
- package/dist/cjs/types/data-structures/priority-queue/max-priority-queue.js +0 -3
- package/dist/cjs/types/data-structures/priority-queue/max-priority-queue.js.map +0 -1
- package/dist/cjs/types/data-structures/priority-queue/min-priority-queue.js +0 -3
- package/dist/cjs/types/data-structures/priority-queue/min-priority-queue.js.map +0 -1
- package/dist/cjs/types/data-structures/priority-queue/priority-queue.js +0 -3
- package/dist/cjs/types/data-structures/priority-queue/priority-queue.js.map +0 -1
- package/dist/cjs/types/data-structures/queue/deque.js +0 -3
- package/dist/cjs/types/data-structures/queue/deque.js.map +0 -1
- package/dist/cjs/types/data-structures/queue/index.js +0 -19
- package/dist/cjs/types/data-structures/queue/index.js.map +0 -1
- package/dist/cjs/types/data-structures/queue/queue.js +0 -3
- package/dist/cjs/types/data-structures/queue/queue.js.map +0 -1
- package/dist/cjs/types/data-structures/stack/index.js +0 -18
- package/dist/cjs/types/data-structures/stack/index.js.map +0 -1
- package/dist/cjs/types/data-structures/stack/stack.js +0 -3
- package/dist/cjs/types/data-structures/stack/stack.js.map +0 -1
- package/dist/cjs/types/data-structures/tree/index.js +0 -18
- package/dist/cjs/types/data-structures/tree/index.js.map +0 -1
- package/dist/cjs/types/data-structures/tree/tree.js +0 -3
- package/dist/cjs/types/data-structures/tree/tree.js.map +0 -1
- package/dist/cjs/types/data-structures/trie/index.js +0 -18
- package/dist/cjs/types/data-structures/trie/index.js.map +0 -1
- package/dist/cjs/types/data-structures/trie/trie.js +0 -3
- package/dist/cjs/types/data-structures/trie/trie.js.map +0 -1
- package/dist/cjs/types/index.js +0 -20
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/types/utils/index.js +0 -19
- package/dist/cjs/types/utils/index.js.map +0 -1
- package/dist/cjs/types/utils/utils.js +0 -3
- package/dist/cjs/types/utils/utils.js.map +0 -1
- package/dist/cjs/types/utils/validate-type.js +0 -3
- package/dist/cjs/types/utils/validate-type.js.map +0 -1
- package/dist/cjs/utils/index.js +0 -19
- package/dist/cjs/utils/index.js.map +0 -1
- package/dist/cjs/utils/number.js +0 -24
- package/dist/cjs/utils/number.js.map +0 -1
- package/dist/cjs/utils/utils.d.ts +0 -209
- package/dist/cjs/utils/utils.js +0 -353
- package/dist/cjs/utils/utils.js.map +0 -1
- package/dist/esm/common/index.d.ts +0 -12
- package/dist/esm/common/index.js +0 -29
- package/dist/esm/common/index.js.map +0 -1
- package/dist/esm/data-structures/base/index.d.ts +0 -2
- package/dist/esm/data-structures/base/index.js +0 -3
- package/dist/esm/data-structures/base/index.js.map +0 -1
- package/dist/esm/data-structures/base/iterable-element-base.d.ts +0 -116
- package/dist/esm/data-structures/base/iterable-element-base.js +0 -199
- package/dist/esm/data-structures/base/iterable-element-base.js.map +0 -1
- package/dist/esm/data-structures/base/iterable-entry-base.d.ts +0 -168
- package/dist/esm/data-structures/base/iterable-entry-base.js +0 -237
- package/dist/esm/data-structures/base/iterable-entry-base.js.map +0 -1
- package/dist/esm/data-structures/base/linear-base.d.ts +0 -277
- package/dist/esm/data-structures/base/linear-base.js +0 -549
- package/dist/esm/data-structures/base/linear-base.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/avl-tree-counter.d.ts +0 -214
- package/dist/esm/data-structures/binary-tree/avl-tree-counter.js +0 -410
- package/dist/esm/data-structures/binary-tree/avl-tree-counter.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/avl-tree-multi-map.d.ts +0 -104
- package/dist/esm/data-structures/binary-tree/avl-tree-multi-map.js +0 -205
- package/dist/esm/data-structures/binary-tree/avl-tree-multi-map.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/avl-tree.d.ts +0 -302
- package/dist/esm/data-structures/binary-tree/avl-tree.js +0 -601
- package/dist/esm/data-structures/binary-tree/avl-tree.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -174
- package/dist/esm/data-structures/binary-tree/binary-indexed-tree.js +0 -296
- package/dist/esm/data-structures/binary-tree/binary-indexed-tree.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/binary-tree.d.ts +0 -910
- package/dist/esm/data-structures/binary-tree/binary-tree.js +0 -2198
- package/dist/esm/data-structures/binary-tree/binary-tree.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/bst.d.ts +0 -461
- package/dist/esm/data-structures/binary-tree/bst.js +0 -881
- package/dist/esm/data-structures/binary-tree/bst.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/index.d.ts +0 -10
- package/dist/esm/data-structures/binary-tree/index.js +0 -11
- package/dist/esm/data-structures/binary-tree/index.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/red-black-tree.d.ts +0 -280
- package/dist/esm/data-structures/binary-tree/red-black-tree.js +0 -641
- package/dist/esm/data-structures/binary-tree/red-black-tree.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/segment-tree.d.ts +0 -160
- package/dist/esm/data-structures/binary-tree/segment-tree.js +0 -295
- package/dist/esm/data-structures/binary-tree/segment-tree.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/tree-counter.d.ts +0 -212
- package/dist/esm/data-structures/binary-tree/tree-counter.js +0 -446
- package/dist/esm/data-structures/binary-tree/tree-counter.js.map +0 -1
- package/dist/esm/data-structures/binary-tree/tree-multi-map.js +0 -367
- package/dist/esm/data-structures/binary-tree/tree-multi-map.js.map +0 -1
- package/dist/esm/data-structures/graph/abstract-graph.d.ts +0 -335
- package/dist/esm/data-structures/graph/abstract-graph.js +0 -862
- package/dist/esm/data-structures/graph/abstract-graph.js.map +0 -1
- package/dist/esm/data-structures/graph/directed-graph.d.ts +0 -323
- package/dist/esm/data-structures/graph/directed-graph.js +0 -609
- package/dist/esm/data-structures/graph/directed-graph.js.map +0 -1
- package/dist/esm/data-structures/graph/index.d.ts +0 -4
- package/dist/esm/data-structures/graph/index.js +0 -5
- package/dist/esm/data-structures/graph/index.js.map +0 -1
- package/dist/esm/data-structures/graph/map-graph.d.ts +0 -84
- package/dist/esm/data-structures/graph/map-graph.js +0 -108
- package/dist/esm/data-structures/graph/map-graph.js.map +0 -1
- package/dist/esm/data-structures/graph/undirected-graph.d.ts +0 -231
- package/dist/esm/data-structures/graph/undirected-graph.js +0 -439
- package/dist/esm/data-structures/graph/undirected-graph.js.map +0 -1
- package/dist/esm/data-structures/hash/hash-map.d.ts +0 -519
- package/dist/esm/data-structures/hash/hash-map.js +0 -878
- package/dist/esm/data-structures/hash/hash-map.js.map +0 -1
- package/dist/esm/data-structures/hash/index.d.ts +0 -1
- package/dist/esm/data-structures/hash/index.js +0 -2
- package/dist/esm/data-structures/hash/index.js.map +0 -1
- package/dist/esm/data-structures/heap/heap.d.ts +0 -578
- package/dist/esm/data-structures/heap/heap.js +0 -914
- package/dist/esm/data-structures/heap/heap.js.map +0 -1
- package/dist/esm/data-structures/heap/index.d.ts +0 -3
- package/dist/esm/data-structures/heap/index.js +0 -4
- package/dist/esm/data-structures/heap/index.js.map +0 -1
- package/dist/esm/data-structures/heap/max-heap.d.ts +0 -68
- package/dist/esm/data-structures/heap/max-heap.js +0 -95
- package/dist/esm/data-structures/heap/max-heap.js.map +0 -1
- package/dist/esm/data-structures/heap/min-heap.d.ts +0 -68
- package/dist/esm/data-structures/heap/min-heap.js +0 -83
- package/dist/esm/data-structures/heap/min-heap.js.map +0 -1
- package/dist/esm/data-structures/index.d.ts +0 -12
- package/dist/esm/data-structures/index.js +0 -13
- package/dist/esm/data-structures/index.js.map +0 -1
- package/dist/esm/data-structures/linked-list/doubly-linked-list.d.ts +0 -885
- package/dist/esm/data-structures/linked-list/doubly-linked-list.js +0 -1236
- package/dist/esm/data-structures/linked-list/doubly-linked-list.js.map +0 -1
- package/dist/esm/data-structures/linked-list/index.d.ts +0 -3
- package/dist/esm/data-structures/linked-list/index.js +0 -4
- package/dist/esm/data-structures/linked-list/index.js.map +0 -1
- package/dist/esm/data-structures/linked-list/singly-linked-list.d.ts +0 -500
- package/dist/esm/data-structures/linked-list/singly-linked-list.js +0 -866
- package/dist/esm/data-structures/linked-list/singly-linked-list.js.map +0 -1
- package/dist/esm/data-structures/linked-list/skip-linked-list.d.ts +0 -134
- package/dist/esm/data-structures/linked-list/skip-linked-list.js +0 -243
- package/dist/esm/data-structures/linked-list/skip-linked-list.js.map +0 -1
- package/dist/esm/data-structures/matrix/index.d.ts +0 -2
- package/dist/esm/data-structures/matrix/index.js +0 -3
- package/dist/esm/data-structures/matrix/index.js.map +0 -1
- package/dist/esm/data-structures/matrix/matrix.d.ts +0 -168
- package/dist/esm/data-structures/matrix/matrix.js +0 -444
- package/dist/esm/data-structures/matrix/matrix.js.map +0 -1
- package/dist/esm/data-structures/matrix/navigator.d.ts +0 -55
- package/dist/esm/data-structures/matrix/navigator.js +0 -114
- package/dist/esm/data-structures/matrix/navigator.js.map +0 -1
- package/dist/esm/data-structures/priority-queue/index.d.ts +0 -3
- package/dist/esm/data-structures/priority-queue/index.js +0 -4
- package/dist/esm/data-structures/priority-queue/index.js.map +0 -1
- package/dist/esm/data-structures/priority-queue/max-priority-queue.d.ts +0 -71
- package/dist/esm/data-structures/priority-queue/max-priority-queue.js +0 -101
- package/dist/esm/data-structures/priority-queue/max-priority-queue.js.map +0 -1
- package/dist/esm/data-structures/priority-queue/min-priority-queue.d.ts +0 -72
- package/dist/esm/data-structures/priority-queue/min-priority-queue.js +0 -90
- package/dist/esm/data-structures/priority-queue/min-priority-queue.js.map +0 -1
- package/dist/esm/data-structures/priority-queue/priority-queue.d.ts +0 -74
- package/dist/esm/data-structures/priority-queue/priority-queue.js +0 -92
- package/dist/esm/data-structures/priority-queue/priority-queue.js.map +0 -1
- package/dist/esm/data-structures/queue/deque.d.ts +0 -458
- package/dist/esm/data-structures/queue/deque.js +0 -915
- package/dist/esm/data-structures/queue/deque.js.map +0 -1
- package/dist/esm/data-structures/queue/index.d.ts +0 -2
- package/dist/esm/data-structures/queue/index.js +0 -3
- package/dist/esm/data-structures/queue/index.js.map +0 -1
- package/dist/esm/data-structures/queue/queue.d.ts +0 -329
- package/dist/esm/data-structures/queue/queue.js +0 -452
- package/dist/esm/data-structures/queue/queue.js.map +0 -1
- package/dist/esm/data-structures/stack/index.d.ts +0 -1
- package/dist/esm/data-structures/stack/index.js +0 -2
- package/dist/esm/data-structures/stack/index.js.map +0 -1
- package/dist/esm/data-structures/stack/stack.d.ts +0 -284
- package/dist/esm/data-structures/stack/stack.js +0 -342
- package/dist/esm/data-structures/stack/stack.js.map +0 -1
- package/dist/esm/data-structures/tree/index.d.ts +0 -1
- package/dist/esm/data-structures/tree/index.js +0 -2
- package/dist/esm/data-structures/tree/index.js.map +0 -1
- package/dist/esm/data-structures/tree/tree.d.ts +0 -62
- package/dist/esm/data-structures/tree/tree.js +0 -107
- package/dist/esm/data-structures/tree/tree.js.map +0 -1
- package/dist/esm/data-structures/trie/index.d.ts +0 -1
- package/dist/esm/data-structures/trie/index.js +0 -2
- package/dist/esm/data-structures/trie/index.js.map +0 -1
- package/dist/esm/data-structures/trie/trie.d.ts +0 -351
- package/dist/esm/data-structures/trie/trie.js +0 -592
- package/dist/esm/data-structures/trie/trie.js.map +0 -1
- package/dist/esm/index.d.ts +0 -5
- package/dist/esm/index.js +0 -6
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/interfaces/binary-tree.d.ts +0 -9
- package/dist/esm/interfaces/binary-tree.js +0 -2
- package/dist/esm/interfaces/binary-tree.js.map +0 -1
- package/dist/esm/interfaces/doubly-linked-list.d.ts +0 -1
- package/dist/esm/interfaces/doubly-linked-list.js +0 -2
- package/dist/esm/interfaces/doubly-linked-list.js.map +0 -1
- package/dist/esm/interfaces/graph.d.ts +0 -5
- package/dist/esm/interfaces/graph.js +0 -2
- package/dist/esm/interfaces/graph.js.map +0 -1
- package/dist/esm/interfaces/heap.d.ts +0 -1
- package/dist/esm/interfaces/heap.js +0 -2
- package/dist/esm/interfaces/heap.js.map +0 -1
- package/dist/esm/interfaces/index.d.ts +0 -8
- package/dist/esm/interfaces/index.js +0 -9
- package/dist/esm/interfaces/index.js.map +0 -1
- package/dist/esm/interfaces/navigator.d.ts +0 -1
- package/dist/esm/interfaces/navigator.js +0 -2
- package/dist/esm/interfaces/navigator.js.map +0 -1
- package/dist/esm/interfaces/priority-queue.d.ts +0 -1
- package/dist/esm/interfaces/priority-queue.js +0 -2
- package/dist/esm/interfaces/priority-queue.js.map +0 -1
- package/dist/esm/interfaces/segment-tree.d.ts +0 -1
- package/dist/esm/interfaces/segment-tree.js +0 -2
- package/dist/esm/interfaces/segment-tree.js.map +0 -1
- package/dist/esm/interfaces/singly-linked-list.d.ts +0 -1
- package/dist/esm/interfaces/singly-linked-list.js +0 -2
- package/dist/esm/interfaces/singly-linked-list.js.map +0 -1
- package/dist/esm/types/common.d.ts +0 -15
- package/dist/esm/types/common.js +0 -2
- package/dist/esm/types/common.js.map +0 -1
- package/dist/esm/types/data-structures/base/base.d.ts +0 -13
- package/dist/esm/types/data-structures/base/base.js +0 -2
- package/dist/esm/types/data-structures/base/base.js.map +0 -1
- package/dist/esm/types/data-structures/base/index.d.ts +0 -1
- package/dist/esm/types/data-structures/base/index.js +0 -2
- package/dist/esm/types/data-structures/base/index.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/avl-tree-counter.d.ts +0 -2
- package/dist/esm/types/data-structures/binary-tree/avl-tree-counter.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/avl-tree-counter.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +0 -2
- package/dist/esm/types/data-structures/binary-tree/avl-tree-multi-map.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/avl-tree-multi-map.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/avl-tree.d.ts +0 -2
- package/dist/esm/types/data-structures/binary-tree/avl-tree.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/avl-tree.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -1
- package/dist/esm/types/data-structures/binary-tree/binary-indexed-tree.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/binary-indexed-tree.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/binary-tree.d.ts +0 -29
- package/dist/esm/types/data-structures/binary-tree/binary-tree.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/binary-tree.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/bst.d.ts +0 -12
- package/dist/esm/types/data-structures/binary-tree/bst.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/bst.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/index.d.ts +0 -9
- package/dist/esm/types/data-structures/binary-tree/index.js +0 -10
- package/dist/esm/types/data-structures/binary-tree/index.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/red-black-tree.d.ts +0 -3
- package/dist/esm/types/data-structures/binary-tree/red-black-tree.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/red-black-tree.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/segment-tree.d.ts +0 -1
- package/dist/esm/types/data-structures/binary-tree/segment-tree.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/segment-tree.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/tree-counter.d.ts +0 -2
- package/dist/esm/types/data-structures/binary-tree/tree-counter.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/tree-counter.js.map +0 -1
- package/dist/esm/types/data-structures/binary-tree/tree-multi-map.d.ts +0 -2
- package/dist/esm/types/data-structures/binary-tree/tree-multi-map.js +0 -2
- package/dist/esm/types/data-structures/binary-tree/tree-multi-map.js.map +0 -1
- package/dist/esm/types/data-structures/graph/abstract-graph.js +0 -2
- package/dist/esm/types/data-structures/graph/abstract-graph.js.map +0 -1
- package/dist/esm/types/data-structures/graph/directed-graph.d.ts +0 -1
- package/dist/esm/types/data-structures/graph/directed-graph.js +0 -2
- package/dist/esm/types/data-structures/graph/directed-graph.js.map +0 -1
- package/dist/esm/types/data-structures/graph/index.d.ts +0 -3
- package/dist/esm/types/data-structures/graph/index.js +0 -4
- package/dist/esm/types/data-structures/graph/index.js.map +0 -1
- package/dist/esm/types/data-structures/graph/map-graph.d.ts +0 -1
- package/dist/esm/types/data-structures/graph/map-graph.js +0 -2
- package/dist/esm/types/data-structures/graph/map-graph.js.map +0 -1
- package/dist/esm/types/data-structures/graph/undirected-graph.d.ts +0 -1
- package/dist/esm/types/data-structures/graph/undirected-graph.js +0 -2
- package/dist/esm/types/data-structures/graph/undirected-graph.js.map +0 -1
- package/dist/esm/types/data-structures/hash/hash-map.d.ts +0 -19
- package/dist/esm/types/data-structures/hash/hash-map.js +0 -2
- package/dist/esm/types/data-structures/hash/hash-map.js.map +0 -1
- package/dist/esm/types/data-structures/hash/index.d.ts +0 -2
- package/dist/esm/types/data-structures/hash/index.js +0 -2
- package/dist/esm/types/data-structures/hash/index.js.map +0 -1
- package/dist/esm/types/data-structures/heap/heap.d.ts +0 -5
- package/dist/esm/types/data-structures/heap/heap.js +0 -2
- package/dist/esm/types/data-structures/heap/heap.js.map +0 -1
- package/dist/esm/types/data-structures/heap/index.d.ts +0 -1
- package/dist/esm/types/data-structures/heap/index.js +0 -2
- package/dist/esm/types/data-structures/heap/index.js.map +0 -1
- package/dist/esm/types/data-structures/heap/max-heap.d.ts +0 -1
- package/dist/esm/types/data-structures/heap/max-heap.js +0 -2
- package/dist/esm/types/data-structures/heap/max-heap.js.map +0 -1
- package/dist/esm/types/data-structures/heap/min-heap.d.ts +0 -1
- package/dist/esm/types/data-structures/heap/min-heap.js +0 -2
- package/dist/esm/types/data-structures/heap/min-heap.js.map +0 -1
- package/dist/esm/types/data-structures/index.d.ts +0 -12
- package/dist/esm/types/data-structures/index.js +0 -13
- package/dist/esm/types/data-structures/index.js.map +0 -1
- package/dist/esm/types/data-structures/linked-list/doubly-linked-list.d.ts +0 -2
- package/dist/esm/types/data-structures/linked-list/doubly-linked-list.js +0 -2
- package/dist/esm/types/data-structures/linked-list/doubly-linked-list.js.map +0 -1
- package/dist/esm/types/data-structures/linked-list/index.d.ts +0 -3
- package/dist/esm/types/data-structures/linked-list/index.js +0 -4
- package/dist/esm/types/data-structures/linked-list/index.js.map +0 -1
- package/dist/esm/types/data-structures/linked-list/singly-linked-list.d.ts +0 -2
- package/dist/esm/types/data-structures/linked-list/singly-linked-list.js +0 -2
- package/dist/esm/types/data-structures/linked-list/singly-linked-list.js.map +0 -1
- package/dist/esm/types/data-structures/linked-list/skip-linked-list.d.ts +0 -4
- package/dist/esm/types/data-structures/linked-list/skip-linked-list.js +0 -2
- package/dist/esm/types/data-structures/linked-list/skip-linked-list.js.map +0 -1
- package/dist/esm/types/data-structures/matrix/index.d.ts +0 -2
- package/dist/esm/types/data-structures/matrix/index.js +0 -3
- package/dist/esm/types/data-structures/matrix/index.js.map +0 -1
- package/dist/esm/types/data-structures/matrix/matrix.d.ts +0 -7
- package/dist/esm/types/data-structures/matrix/matrix.js +0 -2
- package/dist/esm/types/data-structures/matrix/matrix.js.map +0 -1
- package/dist/esm/types/data-structures/matrix/navigator.d.ts +0 -14
- package/dist/esm/types/data-structures/matrix/navigator.js +0 -2
- package/dist/esm/types/data-structures/matrix/navigator.js.map +0 -1
- package/dist/esm/types/data-structures/priority-queue/index.d.ts +0 -3
- package/dist/esm/types/data-structures/priority-queue/index.js +0 -4
- package/dist/esm/types/data-structures/priority-queue/index.js.map +0 -1
- package/dist/esm/types/data-structures/priority-queue/max-priority-queue.d.ts +0 -1
- package/dist/esm/types/data-structures/priority-queue/max-priority-queue.js +0 -2
- package/dist/esm/types/data-structures/priority-queue/max-priority-queue.js.map +0 -1
- package/dist/esm/types/data-structures/priority-queue/min-priority-queue.d.ts +0 -1
- package/dist/esm/types/data-structures/priority-queue/min-priority-queue.js +0 -2
- package/dist/esm/types/data-structures/priority-queue/min-priority-queue.js.map +0 -1
- package/dist/esm/types/data-structures/priority-queue/priority-queue.d.ts +0 -2
- package/dist/esm/types/data-structures/priority-queue/priority-queue.js +0 -2
- package/dist/esm/types/data-structures/priority-queue/priority-queue.js.map +0 -1
- package/dist/esm/types/data-structures/queue/deque.d.ts +0 -4
- package/dist/esm/types/data-structures/queue/deque.js +0 -2
- package/dist/esm/types/data-structures/queue/deque.js.map +0 -1
- package/dist/esm/types/data-structures/queue/index.d.ts +0 -2
- package/dist/esm/types/data-structures/queue/index.js +0 -3
- package/dist/esm/types/data-structures/queue/index.js.map +0 -1
- package/dist/esm/types/data-structures/queue/queue.d.ts +0 -4
- package/dist/esm/types/data-structures/queue/queue.js +0 -2
- package/dist/esm/types/data-structures/queue/queue.js.map +0 -1
- package/dist/esm/types/data-structures/stack/index.d.ts +0 -1
- package/dist/esm/types/data-structures/stack/index.js +0 -2
- package/dist/esm/types/data-structures/stack/index.js.map +0 -1
- package/dist/esm/types/data-structures/stack/stack.d.ts +0 -2
- package/dist/esm/types/data-structures/stack/stack.js +0 -2
- package/dist/esm/types/data-structures/stack/stack.js.map +0 -1
- package/dist/esm/types/data-structures/tree/index.d.ts +0 -1
- package/dist/esm/types/data-structures/tree/index.js +0 -2
- package/dist/esm/types/data-structures/tree/index.js.map +0 -1
- package/dist/esm/types/data-structures/tree/tree.d.ts +0 -1
- package/dist/esm/types/data-structures/tree/tree.js +0 -2
- package/dist/esm/types/data-structures/tree/tree.js.map +0 -1
- package/dist/esm/types/data-structures/trie/index.d.ts +0 -1
- package/dist/esm/types/data-structures/trie/index.js +0 -2
- package/dist/esm/types/data-structures/trie/index.js.map +0 -1
- package/dist/esm/types/data-structures/trie/trie.d.ts +0 -4
- package/dist/esm/types/data-structures/trie/trie.js +0 -2
- package/dist/esm/types/data-structures/trie/trie.js.map +0 -1
- package/dist/esm/types/index.d.ts +0 -3
- package/dist/esm/types/index.js +0 -4
- package/dist/esm/types/index.js.map +0 -1
- package/dist/esm/types/utils/index.d.ts +0 -2
- package/dist/esm/types/utils/index.js +0 -3
- package/dist/esm/types/utils/index.js.map +0 -1
- package/dist/esm/types/utils/utils.d.ts +0 -21
- package/dist/esm/types/utils/utils.js +0 -2
- package/dist/esm/types/utils/utils.js.map +0 -1
- package/dist/esm/types/utils/validate-type.d.ts +0 -19
- package/dist/esm/types/utils/validate-type.js +0 -2
- package/dist/esm/types/utils/validate-type.js.map +0 -1
- package/dist/esm/utils/index.d.ts +0 -2
- package/dist/esm/utils/index.js +0 -3
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/number.d.ts +0 -14
- package/dist/esm/utils/number.js +0 -21
- package/dist/esm/utils/number.js.map +0 -1
- package/dist/esm/utils/utils.js +0 -324
- package/dist/esm/utils/utils.js.map +0 -1
- package/test/performance/data-structures/binary-tree/avl-tree.test.mjs +0 -71
- package/test/performance/data-structures/binary-tree/red-black-tree.test.mjs +0 -81
- package/tsconfig-cjs.json +0 -14
- package/tsconfig-esm.json +0 -14
- /package/dist/{cjs → types}/common/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/base/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/binary-tree/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/binary-tree/segment-tree.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/graph/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/hash/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/heap/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/linked-list/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/matrix/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/matrix/matrix.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/matrix/navigator.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/priority-queue/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/queue/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/stack/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/tree/index.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/tree/tree.d.ts +0 -0
- /package/dist/{cjs → types}/data-structures/trie/index.d.ts +0 -0
- /package/dist/{cjs → types}/index.d.ts +0 -0
- /package/dist/{cjs → types}/interfaces/doubly-linked-list.d.ts +0 -0
- /package/dist/{cjs → types}/interfaces/heap.d.ts +0 -0
- /package/dist/{cjs → types}/interfaces/index.d.ts +0 -0
- /package/dist/{cjs → types}/interfaces/navigator.d.ts +0 -0
- /package/dist/{cjs → types}/interfaces/priority-queue.d.ts +0 -0
- /package/dist/{cjs → types}/interfaces/segment-tree.d.ts +0 -0
- /package/dist/{cjs → types}/interfaces/singly-linked-list.d.ts +0 -0
- /package/dist/{cjs → types}/types/common.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/base/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/avl-tree-counter.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/avl-tree.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/binary-tree.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/bst.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/red-black-tree.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/segment-tree.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/tree-counter.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/binary-tree/tree-multi-map.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/graph/directed-graph.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/graph/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/graph/map-graph.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/graph/undirected-graph.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/hash/hash-map.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/hash/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/heap/heap.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/heap/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/heap/max-heap.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/heap/min-heap.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/linked-list/doubly-linked-list.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/linked-list/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/linked-list/singly-linked-list.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/linked-list/skip-linked-list.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/matrix/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/matrix/matrix.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/matrix/navigator.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/priority-queue/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/priority-queue/max-priority-queue.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/priority-queue/min-priority-queue.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/priority-queue/priority-queue.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/queue/deque.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/queue/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/queue/queue.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/stack/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/stack/stack.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/tree/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/tree/tree.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/trie/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/data-structures/trie/trie.d.ts +0 -0
- /package/dist/{cjs → types}/types/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/utils/index.d.ts +0 -0
- /package/dist/{cjs → types}/types/utils/validate-type.d.ts +0 -0
- /package/dist/{cjs → types}/utils/index.d.ts +0 -0
- /package/dist/{cjs → types}/utils/number.d.ts +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BinaryTreeNode, BST, BSTNode, Range } from '../../../../src';
|
|
1
|
+
import { BinaryTreeNode, BST, BSTNode, IBinaryTree, Range } from '../../../../src';
|
|
2
2
|
import { isDebugTest, isTestStackOverflow, SYSTEM_MAX_CALL_STACK } from '../../../config';
|
|
3
3
|
|
|
4
4
|
const isDebug = isDebugTest;
|
|
@@ -331,8 +331,7 @@ describe('BST operations test', () => {
|
|
|
331
331
|
if (removed11[0].deleted) expect(removed11[0].deleted.key).toBe(11);
|
|
332
332
|
|
|
333
333
|
expect(objBST.isAVLBalanced()).toBe(true);
|
|
334
|
-
|
|
335
|
-
expect(node15 && objBST.getHeight(node15)).toBe(2);
|
|
334
|
+
expect(node15 && objBST.getHeight(node15)).toBe(1);
|
|
336
335
|
|
|
337
336
|
const removed1 = objBST.delete(1);
|
|
338
337
|
expect(removed1).toBeInstanceOf(Array);
|
|
@@ -775,7 +774,7 @@ describe('BST operations test recursively', () => {
|
|
|
775
774
|
|
|
776
775
|
expect(objBST.isAVLBalanced()).toBe(true);
|
|
777
776
|
|
|
778
|
-
expect(node15 && objBST.getHeight(node15)).toBe(
|
|
777
|
+
expect(node15 && objBST.getHeight(node15)).toBe(1);
|
|
779
778
|
|
|
780
779
|
const removed1 = objBST.delete(1);
|
|
781
780
|
expect(removed1).toBeInstanceOf(Array);
|
|
@@ -932,7 +931,7 @@ describe('BST operations test recursively', () => {
|
|
|
932
931
|
});
|
|
933
932
|
|
|
934
933
|
it('should the clone method', () => {
|
|
935
|
-
function checkTreeStructure(bst:
|
|
934
|
+
function checkTreeStructure(bst: IBinaryTree<string, number>) {
|
|
936
935
|
expect(bst.size).toBe(4);
|
|
937
936
|
expect(bst.root?.key).toBe('2');
|
|
938
937
|
expect(bst.root?.left?.key).toBe('1');
|
|
@@ -1540,13 +1539,13 @@ describe('BST iterative methods not map mode test', () => {
|
|
|
1540
1539
|
describe('BST constructor and comparator edge cases', () => {
|
|
1541
1540
|
it('should support specifyComparable and isReverse', () => {
|
|
1542
1541
|
const bst = new BST<number>([], {
|
|
1543
|
-
specifyComparable:
|
|
1542
|
+
specifyComparable: k => -k,
|
|
1544
1543
|
isReverse: true
|
|
1545
1544
|
});
|
|
1546
1545
|
bst.add(1);
|
|
1547
1546
|
bst.add(2);
|
|
1548
1547
|
expect(bst.isReverse).toBe(true);
|
|
1549
|
-
expect(bst[
|
|
1548
|
+
expect(bst['_specifyComparable']).toBeDefined();
|
|
1550
1549
|
expect([...bst.keys()]).toEqual([2, 1]);
|
|
1551
1550
|
});
|
|
1552
1551
|
|
|
@@ -1563,7 +1562,11 @@ describe('BST addMany edge cases', () => {
|
|
|
1563
1562
|
const values = ['a', 'b', 'c'];
|
|
1564
1563
|
const result = bst.addMany(keys, values);
|
|
1565
1564
|
expect(result).toEqual([true, true, true]);
|
|
1566
|
-
expect([...bst]).toEqual([
|
|
1565
|
+
expect([...bst]).toEqual([
|
|
1566
|
+
[1, 'a'],
|
|
1567
|
+
[2, 'b'],
|
|
1568
|
+
[3, 'c']
|
|
1569
|
+
]);
|
|
1567
1570
|
});
|
|
1568
1571
|
|
|
1569
1572
|
it('should addMany with isBalanceAdd=false', () => {
|
|
@@ -1608,7 +1611,7 @@ describe('BST _keyValueNodeOrEntryToNodeAndValue edge', () => {
|
|
|
1608
1611
|
it('should return [undefined, undefined] for null', () => {
|
|
1609
1612
|
const bst = new BST<number>();
|
|
1610
1613
|
// @ts-ignore
|
|
1611
|
-
const result = bst[
|
|
1614
|
+
const result = bst['_keyValueNodeOrEntryToNodeAndValue'](null);
|
|
1612
1615
|
expect(result).toEqual([undefined, undefined]);
|
|
1613
1616
|
});
|
|
1614
1617
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BinaryTreeNode, BSTNode, RedBlackTree, RedBlackTreeNode } from '../../../../src';
|
|
1
|
+
import { BinaryTreeNode, BSTNode, IBinaryTree, RedBlackTree, RedBlackTreeNode } from '../../../../src';
|
|
2
2
|
import { getRandomInt, getRandomIntArray, magnitude } from '../../../utils';
|
|
3
3
|
import { OrderedMap } from 'js-sdsl';
|
|
4
4
|
|
|
@@ -148,7 +148,7 @@ describe('RedBlackTree 1', () => {
|
|
|
148
148
|
});
|
|
149
149
|
|
|
150
150
|
it('should the clone method', () => {
|
|
151
|
-
function checkTreeStructure(rbTree:
|
|
151
|
+
function checkTreeStructure(rbTree: IBinaryTree<string, number>) {
|
|
152
152
|
expect(rbTree.size).toBe(4);
|
|
153
153
|
expect(rbTree.root?.key).toBe('2');
|
|
154
154
|
expect(rbTree.root?.left?.key).toBe('1');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BinaryTreeNode, BSTNode, RedBlackTreeNode, TreeCounter, TreeCounterNode } from '../../../../src';
|
|
1
|
+
import { BinaryTreeNode, BSTNode, IBinaryTree, RedBlackTreeNode, TreeCounter, TreeCounterNode } from '../../../../src';
|
|
2
2
|
import { isDebugTest } from '../../../config';
|
|
3
3
|
import { getRandomInt } from '../../../utils';
|
|
4
4
|
|
|
@@ -172,12 +172,12 @@ describe('TreeCounter operations test1', () => {
|
|
|
172
172
|
expect(dfsInorderNodes[dfsInorderNodes.length - 1].key).toBe(16);
|
|
173
173
|
expect(treeCounter.isPerfectlyBalanced()).toBe(false);
|
|
174
174
|
treeCounter.perfectlyBalance();
|
|
175
|
-
expect(treeCounter.isPerfectlyBalanced()).toBe(
|
|
175
|
+
expect(treeCounter.isPerfectlyBalanced()).toBe(true);
|
|
176
176
|
|
|
177
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
177
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
178
178
|
|
|
179
179
|
const bfsNodesAfterBalanced = treeCounter.bfs(node => node);
|
|
180
|
-
expect(bfsNodesAfterBalanced[0].key).toBe(
|
|
180
|
+
expect(bfsNodesAfterBalanced[0].key).toBe(8);
|
|
181
181
|
expect(bfsNodesAfterBalanced[bfsNodesAfterBalanced.length - 1].key).toBe(16);
|
|
182
182
|
|
|
183
183
|
const removed11 = treeCounter.delete(11, true);
|
|
@@ -187,7 +187,7 @@ describe('TreeCounter operations test1', () => {
|
|
|
187
187
|
|
|
188
188
|
if (removed11[0].deleted) expect(removed11[0].deleted.key).toBe(11);
|
|
189
189
|
|
|
190
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
190
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
191
191
|
|
|
192
192
|
expect(treeCounter.getHeight(15)).toBe(1);
|
|
193
193
|
|
|
@@ -197,9 +197,9 @@ describe('TreeCounter operations test1', () => {
|
|
|
197
197
|
expect(removed1[0].deleted);
|
|
198
198
|
if (removed1[0].deleted) expect(removed1[0].deleted.key).toBe(1);
|
|
199
199
|
|
|
200
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
200
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
201
201
|
|
|
202
|
-
expect(treeCounter.getHeight()).toBe(
|
|
202
|
+
expect(treeCounter.getHeight()).toBe(4);
|
|
203
203
|
|
|
204
204
|
const removed4 = treeCounter.delete(4, true);
|
|
205
205
|
expect(removed4 instanceof Array);
|
|
@@ -207,8 +207,8 @@ describe('TreeCounter operations test1', () => {
|
|
|
207
207
|
expect(removed4[0].deleted);
|
|
208
208
|
if (removed4[0].deleted) expect(removed4[0].deleted.key).toBe(4);
|
|
209
209
|
|
|
210
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
211
|
-
expect(treeCounter.getHeight()).toBe(
|
|
210
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
211
|
+
expect(treeCounter.getHeight()).toBe(4);
|
|
212
212
|
|
|
213
213
|
const removed10 = treeCounter.delete(10, true);
|
|
214
214
|
expect(removed10 instanceof Array);
|
|
@@ -225,7 +225,7 @@ describe('TreeCounter operations test1', () => {
|
|
|
225
225
|
expect(removed15[0].deleted);
|
|
226
226
|
if (removed15[0].deleted) expect(removed15[0].deleted.key).toBe(15);
|
|
227
227
|
|
|
228
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
228
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
229
229
|
expect(treeCounter.getHeight()).toBe(3);
|
|
230
230
|
|
|
231
231
|
const removed5 = treeCounter.delete(5, true);
|
|
@@ -250,7 +250,7 @@ describe('TreeCounter operations test1', () => {
|
|
|
250
250
|
expect(removed3[0]);
|
|
251
251
|
expect(removed3[0].deleted);
|
|
252
252
|
if (removed3[0].deleted) expect(removed3[0].deleted.key).toBe(3);
|
|
253
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
253
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
254
254
|
expect(treeCounter.getHeight()).toBe(3);
|
|
255
255
|
|
|
256
256
|
const removed8 = treeCounter.delete(8, true);
|
|
@@ -440,11 +440,11 @@ describe('TreeCounter operations test recursively1', () => {
|
|
|
440
440
|
|
|
441
441
|
treeCounter.perfectlyBalance();
|
|
442
442
|
|
|
443
|
-
expect(treeCounter.isPerfectlyBalanced()).toBe(
|
|
444
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
443
|
+
expect(treeCounter.isPerfectlyBalanced()).toBe(true);
|
|
444
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
445
445
|
|
|
446
446
|
const bfsNodesAfterBalanced = treeCounter.bfs(node => node);
|
|
447
|
-
expect(bfsNodesAfterBalanced[0].key).toBe(
|
|
447
|
+
expect(bfsNodesAfterBalanced[0].key).toBe(8);
|
|
448
448
|
expect(bfsNodesAfterBalanced[bfsNodesAfterBalanced.length - 1].key).toBe(16);
|
|
449
449
|
|
|
450
450
|
const removed11 = treeCounter.delete(11, true);
|
|
@@ -454,7 +454,7 @@ describe('TreeCounter operations test recursively1', () => {
|
|
|
454
454
|
|
|
455
455
|
if (removed11[0].deleted) expect(removed11[0].deleted.key).toBe(11);
|
|
456
456
|
|
|
457
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
457
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
458
458
|
|
|
459
459
|
expect(treeCounter.getHeight(15)).toBe(1);
|
|
460
460
|
|
|
@@ -463,10 +463,9 @@ describe('TreeCounter operations test recursively1', () => {
|
|
|
463
463
|
expect(removed1[0]);
|
|
464
464
|
expect(removed1[0].deleted);
|
|
465
465
|
if (removed1[0].deleted) expect(removed1[0].deleted.key).toBe(1);
|
|
466
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
466
467
|
|
|
467
|
-
expect(treeCounter.
|
|
468
|
-
|
|
469
|
-
expect(treeCounter.getHeight()).toBe(5);
|
|
468
|
+
expect(treeCounter.getHeight()).toBe(4);
|
|
470
469
|
|
|
471
470
|
const removed4 = treeCounter.delete(4, true);
|
|
472
471
|
expect(removed4 instanceof Array);
|
|
@@ -474,8 +473,8 @@ describe('TreeCounter operations test recursively1', () => {
|
|
|
474
473
|
expect(removed4[0].deleted);
|
|
475
474
|
if (removed4[0].deleted) expect(removed4[0].deleted.key).toBe(4);
|
|
476
475
|
|
|
477
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
478
|
-
expect(treeCounter.getHeight()).toBe(
|
|
476
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
477
|
+
expect(treeCounter.getHeight()).toBe(4);
|
|
479
478
|
|
|
480
479
|
const removed10 = treeCounter.delete(10, true);
|
|
481
480
|
expect(removed10 instanceof Array);
|
|
@@ -492,7 +491,7 @@ describe('TreeCounter operations test recursively1', () => {
|
|
|
492
491
|
expect(removed15[0].deleted);
|
|
493
492
|
if (removed15[0].deleted) expect(removed15[0].deleted.key).toBe(15);
|
|
494
493
|
|
|
495
|
-
expect(treeCounter.isAVLBalanced()).toBe(
|
|
494
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
496
495
|
expect(treeCounter.getHeight()).toBe(3);
|
|
497
496
|
|
|
498
497
|
const removed5 = treeCounter.delete(5, true);
|
|
@@ -517,7 +516,8 @@ describe('TreeCounter operations test recursively1', () => {
|
|
|
517
516
|
expect(removed3[0]);
|
|
518
517
|
expect(removed3[0].deleted);
|
|
519
518
|
if (removed3[0].deleted) expect(removed3[0].deleted.key).toBe(3);
|
|
520
|
-
|
|
519
|
+
|
|
520
|
+
expect(treeCounter.isAVLBalanced()).toBe(true);
|
|
521
521
|
expect(treeCounter.getHeight()).toBe(3);
|
|
522
522
|
|
|
523
523
|
const removed8 = treeCounter.delete(8, true);
|
|
@@ -709,7 +709,7 @@ describe('TreeCounter delete test', function () {
|
|
|
709
709
|
});
|
|
710
710
|
|
|
711
711
|
it('should the clone method', () => {
|
|
712
|
-
function checkTreeStructure(treeCounter:
|
|
712
|
+
function checkTreeStructure(treeCounter: IBinaryTree<string, number>) {
|
|
713
713
|
expect(treeCounter.size).toBe(4);
|
|
714
714
|
expect(treeCounter.root?.key).toBe('2');
|
|
715
715
|
expect(treeCounter.root?.left?.key).toBe('1');
|
|
@@ -969,7 +969,8 @@ describe('TreeCounter iterative methods test not map mode', () => {
|
|
|
969
969
|
expect(treeCounter.count).toBe(21);
|
|
970
970
|
expect(treeCounter.getComputedCount()).toBe(21);
|
|
971
971
|
const cloned = treeCounter.clone();
|
|
972
|
+
expect(cloned instanceof TreeCounter).toBe(true);
|
|
972
973
|
expect(cloned.root?.left?.key).toBe(1);
|
|
973
|
-
expect(cloned.get(cloned.root?.right)).toBe(
|
|
974
|
+
expect(cloned.get(cloned.root?.right)).toBe('c');
|
|
974
975
|
});
|
|
975
976
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BinaryTreeNode, BSTNode, TreeMultiMap, TreeMultiMapNode } from '../../../../src';
|
|
1
|
+
import { BinaryTreeNode, BSTNode, IBinaryTree, TreeMultiMap, TreeMultiMapNode } from '../../../../src';
|
|
2
2
|
import { getRandomInt } from '../../../utils';
|
|
3
|
-
|
|
3
|
+
import { Range } from '../../../../src';
|
|
4
4
|
import { isDebugTest } from '../../../config';
|
|
5
5
|
import { costOfLiving } from './data/cost-of-living-by-country';
|
|
6
6
|
|
|
@@ -163,7 +163,7 @@ describe('TreeMultiMap 1', () => {
|
|
|
163
163
|
});
|
|
164
164
|
|
|
165
165
|
it('should the clone method', () => {
|
|
166
|
-
function checkTreeStructure(tmm:
|
|
166
|
+
function checkTreeStructure(tmm: IBinaryTree<string, number[]>) {
|
|
167
167
|
expect(tmm.size).toBe(4);
|
|
168
168
|
expect(tmm.root?.key).toBe('2');
|
|
169
169
|
expect(tmm.root?.left?.key).toBe('1');
|
|
@@ -627,7 +627,7 @@ describe('TreeMultiMap 2', () => {
|
|
|
627
627
|
});
|
|
628
628
|
|
|
629
629
|
describe('TreeMultiMap iterative methods test', () => {
|
|
630
|
-
let tmm: TreeMultiMap<number, string, object
|
|
630
|
+
let tmm: TreeMultiMap<number, string, object>;
|
|
631
631
|
beforeEach(() => {
|
|
632
632
|
tmm = new TreeMultiMap();
|
|
633
633
|
tmm.add([1, ['a']]);
|
|
@@ -1003,3 +1003,111 @@ describe('classic use', () => {
|
|
|
1003
1003
|
]);
|
|
1004
1004
|
});
|
|
1005
1005
|
});
|
|
1006
|
+
|
|
1007
|
+
interface Product {
|
|
1008
|
+
id: string;
|
|
1009
|
+
name: string;
|
|
1010
|
+
price: number;
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
// Build a TreeMultiMap in "multi" mode: price -> Product[]
|
|
1014
|
+
function buildIndex(sample: Product[]): TreeMultiMap<number, Product, Product> {
|
|
1015
|
+
return new TreeMultiMap<number, Product, Product>(sample, {
|
|
1016
|
+
toEntryFn: raw => [raw.price, [raw]],
|
|
1017
|
+
isMapMode: false // ensure multi-value per key
|
|
1018
|
+
});
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
// Helper: normalize getLeftMost/getRightMost return (key or node.key)
|
|
1022
|
+
function leftKey(tmm: TreeMultiMap<number, Product, Product>): number | undefined {
|
|
1023
|
+
const v = tmm.getLeftMost();
|
|
1024
|
+
return v == null ? undefined : typeof v === 'object' ? v.key : v;
|
|
1025
|
+
}
|
|
1026
|
+
function rightKey(tmm: TreeMultiMap<number, Product, Product>): number | undefined {
|
|
1027
|
+
const v = tmm.getRightMost();
|
|
1028
|
+
return v == null ? undefined : typeof v === 'object' ? v.key : v;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
describe('TreeMultiMap — rangeSearch-driven semantics', () => {
|
|
1032
|
+
const sample: Product[] = [
|
|
1033
|
+
{ id: 'p1', name: 'Basic Tee', price: 35.5 },
|
|
1034
|
+
{ id: 'p2', name: 'Sport Socks', price: 12.9 },
|
|
1035
|
+
{ id: 'p3', name: 'Denim Jeans', price: 79.9 },
|
|
1036
|
+
{ id: 'p4', name: 'Hoodie', price: 79.9 },
|
|
1037
|
+
{ id: 'p5', name: 'Sneakers', price: 99.0 },
|
|
1038
|
+
{ id: 'p6', name: 'Backpack', price: 120.0 },
|
|
1039
|
+
{ id: 'p7', name: 'Watch', price: 199.0 },
|
|
1040
|
+
{ id: 'p8', name: 'Hat', price: 35.5 }
|
|
1041
|
+
];
|
|
1042
|
+
|
|
1043
|
+
it('stores multiple values under the same key and preserves insertion order in the bucket', () => {
|
|
1044
|
+
const tmm = buildIndex(sample);
|
|
1045
|
+
// Use rangeSearch on the single key [35.5, 35.5]
|
|
1046
|
+
const groups = tmm.rangeSearch(new Range(35.5, 35.5, true, true), node => node.value).flat();
|
|
1047
|
+
expect(groups.map(p => p!.id)).toEqual(['p1', 'p8']); // insertion order kept
|
|
1048
|
+
});
|
|
1049
|
+
|
|
1050
|
+
it('iterates keys in ascending order (via keys())', () => {
|
|
1051
|
+
const tmm = buildIndex(sample);
|
|
1052
|
+
expect([...tmm.keys()]).toEqual([12.9, 35.5, 79.9, 99, 120, 199]);
|
|
1053
|
+
});
|
|
1054
|
+
|
|
1055
|
+
it('rangeSearch respects inclusive/exclusive bounds — flat result', () => {
|
|
1056
|
+
const tmm = buildIndex(sample);
|
|
1057
|
+
|
|
1058
|
+
// [35.5, 100): include 35.5, exclude 100
|
|
1059
|
+
const res = tmm.rangeSearch(new Range(35.5, 100, true, false), node => node.value).flat();
|
|
1060
|
+
|
|
1061
|
+
expect(res.map(p => `${p!.name}($${p!.price})`)).toEqual([
|
|
1062
|
+
'Basic Tee($35.5)',
|
|
1063
|
+
'Hat($35.5)',
|
|
1064
|
+
'Denim Jeans($79.9)',
|
|
1065
|
+
'Hoodie($79.9)',
|
|
1066
|
+
'Sneakers($99)'
|
|
1067
|
+
]);
|
|
1068
|
+
expect(res.map(p => p!.id)).toEqual(['p1', 'p8', 'p3', 'p4', 'p5']);
|
|
1069
|
+
});
|
|
1070
|
+
|
|
1071
|
+
it('rangeSearch returns grouped buckets — both ends exclusive', () => {
|
|
1072
|
+
const tmm = buildIndex(sample);
|
|
1073
|
+
|
|
1074
|
+
// (80, 200) → keys 99, 120, 199
|
|
1075
|
+
const groups = tmm.rangeSearch(new Range(80, 200, false, false), node => ({ key: node.key, bucket: node.value }));
|
|
1076
|
+
|
|
1077
|
+
expect(groups.map(g => g.key)).toEqual([99, 120, 199]);
|
|
1078
|
+
expect(groups.map(g => g.bucket!.map(i => i.id))).toEqual([['p5'], ['p6'], ['p7']]);
|
|
1079
|
+
});
|
|
1080
|
+
|
|
1081
|
+
it('rangeSearch across full domain by using current min/max keys (no Infinity)', () => {
|
|
1082
|
+
const tmm = buildIndex(sample);
|
|
1083
|
+
const lo = tmm.getLeftMost(); // expected 12.9
|
|
1084
|
+
const hi = tmm.getRightMost(); // expected 199
|
|
1085
|
+
|
|
1086
|
+
const groups = tmm.rangeSearch(new Range(lo, hi, true, true), node => ({
|
|
1087
|
+
key: node.key,
|
|
1088
|
+
count: node.value!.length
|
|
1089
|
+
}));
|
|
1090
|
+
|
|
1091
|
+
// 12.9:1 | 35.5:2 | 79.9:2 | 99:1 | 120:1 | 199:1
|
|
1092
|
+
expect(groups.map(g => `${g.key}:${g.count}`).join(' | ')).toBe('12.9:1 | 35.5:2 | 79.9:2 | 99:1 | 120:1 | 199:1');
|
|
1093
|
+
});
|
|
1094
|
+
|
|
1095
|
+
it('empty TreeMultiMap → rangeSearch returns empty results', () => {
|
|
1096
|
+
const tmm = buildIndex([]);
|
|
1097
|
+
// Any finite range should yield empty
|
|
1098
|
+
const flat = tmm.rangeSearch(new Range(0, 100, true, true), n => n.value).flat();
|
|
1099
|
+
expect(flat).toEqual([]);
|
|
1100
|
+
|
|
1101
|
+
const groups = tmm.rangeSearch(new Range(0, 100, true, true), (node: any) => ({
|
|
1102
|
+
key: node.key,
|
|
1103
|
+
bucket: node.value as Product[]
|
|
1104
|
+
}));
|
|
1105
|
+
expect(groups).toEqual([]);
|
|
1106
|
+
});
|
|
1107
|
+
|
|
1108
|
+
it('left-most/right-most key helpers (if API returns node, unwrap .key)', () => {
|
|
1109
|
+
const tmm = buildIndex(sample);
|
|
1110
|
+
expect(leftKey(tmm)).toBe(12.9);
|
|
1111
|
+
expect(rightKey(tmm)).toBe(199);
|
|
1112
|
+
});
|
|
1113
|
+
});
|
|
@@ -685,7 +685,7 @@ describe('DirectedGraph iterative Methods', () => {
|
|
|
685
685
|
});
|
|
686
686
|
|
|
687
687
|
it('filter should return vertexMap that satisfy the condition', () => {
|
|
688
|
-
const filtered = graph.
|
|
688
|
+
const filtered = graph.filterEntries(key => key === 'A' || key === 'B');
|
|
689
689
|
expect(filtered).toEqual([
|
|
690
690
|
['A', undefined],
|
|
691
691
|
['B', undefined]
|
|
@@ -155,18 +155,14 @@ describe('Heap Operation Test', () => {
|
|
|
155
155
|
}
|
|
156
156
|
);
|
|
157
157
|
|
|
158
|
-
const mappedMinHeap = minHeap.map(
|
|
159
|
-
item => item.key,
|
|
160
|
-
(a, b) => a - b
|
|
161
|
-
);
|
|
158
|
+
const mappedMinHeap = minHeap.map(item => item.key, { comparator: (a, b) => a - b });
|
|
162
159
|
expect(mappedMinHeap.peek()).toBe(0);
|
|
163
160
|
expect(mappedMinHeap.sort()).toEqual([0, 1, 2, 3, 4, 5, 6]);
|
|
164
161
|
|
|
165
|
-
const mappedToElementFnMinHeap = minHeap.map<string, { id: string }>(
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
);
|
|
162
|
+
const mappedToElementFnMinHeap = minHeap.map<string, { id: string }>(item => item.key.toString(), {
|
|
163
|
+
comparator: (a, b) => Number(a) - Number(b),
|
|
164
|
+
toElementFn: rawElement => rawElement.id
|
|
165
|
+
});
|
|
170
166
|
expect(mappedToElementFnMinHeap.peek()).toBe('0');
|
|
171
167
|
expect(mappedToElementFnMinHeap.sort()).toEqual(['0', '1', '2', '3', '4', '5', '6']);
|
|
172
168
|
|
|
@@ -234,17 +230,17 @@ describe('Heap Operation Test', () => {
|
|
|
234
230
|
expect(hp.leaf).toBe(1);
|
|
235
231
|
});
|
|
236
232
|
|
|
237
|
-
it('should error', function () {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
});
|
|
233
|
+
// it('should error', function () {
|
|
234
|
+
// expect(() => {
|
|
235
|
+
// new Heap([{ key: 1 }, { key: 2 }, { key: 3 }]);
|
|
236
|
+
// }).toThrow(
|
|
237
|
+
// "When comparing object types, a custom comparator must be defined in the constructor's options parameter."
|
|
238
|
+
// );
|
|
239
|
+
// });
|
|
244
240
|
});
|
|
245
241
|
|
|
246
242
|
describe('Heap HOF', () => {
|
|
247
|
-
let hp: Heap
|
|
243
|
+
let hp: Heap<{ key: number }, { key: number }>;
|
|
248
244
|
|
|
249
245
|
beforeEach(() => {
|
|
250
246
|
hp = new Heap([{ key: 1 }, { key: 2 }, { key: 3 }], { comparator: (a, b) => a.key - b.key });
|
|
@@ -256,10 +252,7 @@ describe('Heap HOF', () => {
|
|
|
256
252
|
});
|
|
257
253
|
|
|
258
254
|
it('should map', () => {
|
|
259
|
-
const mapped = hp.map(
|
|
260
|
-
({ key }) => [key, key],
|
|
261
|
-
(a, b) => a[0] - b[0]
|
|
262
|
-
);
|
|
255
|
+
const mapped = hp.map(({ key }) => [key, key], { comparator: (a, b) => a[0] - b[0] });
|
|
263
256
|
expect([...mapped]).toEqual([
|
|
264
257
|
[1, 1],
|
|
265
258
|
[2, 2],
|
|
@@ -71,10 +71,7 @@ describe('MaxHeap', () => {
|
|
|
71
71
|
}
|
|
72
72
|
);
|
|
73
73
|
|
|
74
|
-
const mappedMaxHeap = maxHeap.map(
|
|
75
|
-
item => item.key,
|
|
76
|
-
(a, b) => b - a
|
|
77
|
-
);
|
|
74
|
+
const mappedMaxHeap = maxHeap.map(item => item.key, { comparator: (a, b) => b - a });
|
|
78
75
|
expect(mappedMaxHeap.peek()).toBe(6);
|
|
79
76
|
expect(mappedMaxHeap.sort()).toEqual([6, 5, 4, 3, 2, 1, 0]);
|
|
80
77
|
|
|
@@ -83,11 +80,10 @@ describe('MaxHeap', () => {
|
|
|
83
80
|
{
|
|
84
81
|
id: string;
|
|
85
82
|
}
|
|
86
|
-
>(
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
);
|
|
83
|
+
>(item => item.key.toString(), {
|
|
84
|
+
comparator: (a, b) => Number(b) - Number(a),
|
|
85
|
+
toElementFn: rawElement => rawElement.id
|
|
86
|
+
});
|
|
91
87
|
expect(mappedToElementFnMaxHeap.peek()).toBe('6');
|
|
92
88
|
expect(mappedToElementFnMaxHeap.sort()).toEqual(['6', '5', '4', '3', '2', '1', '0']);
|
|
93
89
|
|
|
@@ -106,10 +106,7 @@ describe('Heap iterative methods', () => {
|
|
|
106
106
|
});
|
|
107
107
|
|
|
108
108
|
it('map method correctly maps elements', () => {
|
|
109
|
-
const result = heap.map(
|
|
110
|
-
x => x / 10,
|
|
111
|
-
(a: number, b: number) => a - b
|
|
112
|
-
);
|
|
109
|
+
const result = heap.map(x => x / 10, { comparator: (a: number, b: number) => a - b });
|
|
113
110
|
expect([...result]).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
|
|
114
111
|
});
|
|
115
112
|
|
|
@@ -783,6 +783,16 @@ describe('classic use', () => {
|
|
|
783
783
|
this.map = new Map<K, DoublyLinkedListNode<CacheEntry<K, V>>>();
|
|
784
784
|
}
|
|
785
785
|
|
|
786
|
+
// Get the current cache length
|
|
787
|
+
get length(): number {
|
|
788
|
+
return this.list.length;
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
// Check if it is empty
|
|
792
|
+
get isEmpty(): boolean {
|
|
793
|
+
return this.list.isEmpty();
|
|
794
|
+
}
|
|
795
|
+
|
|
786
796
|
// Get cached value
|
|
787
797
|
get(key: K): V | undefined {
|
|
788
798
|
const node = this.map.get(key);
|
|
@@ -828,12 +838,6 @@ describe('classic use', () => {
|
|
|
828
838
|
}
|
|
829
839
|
}
|
|
830
840
|
|
|
831
|
-
// Move the node to the head of the linked list
|
|
832
|
-
private moveToFront(node: DoublyLinkedListNode<CacheEntry<K, V>>): void {
|
|
833
|
-
this.list.delete(node);
|
|
834
|
-
this.list.unshift(node.value);
|
|
835
|
-
}
|
|
836
|
-
|
|
837
841
|
// Delete specific key
|
|
838
842
|
delete(key: K): boolean {
|
|
839
843
|
const node = this.map.get(key);
|
|
@@ -853,14 +857,10 @@ describe('classic use', () => {
|
|
|
853
857
|
this.map.clear();
|
|
854
858
|
}
|
|
855
859
|
|
|
856
|
-
//
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
// Check if it is empty
|
|
862
|
-
get isEmpty(): boolean {
|
|
863
|
-
return this.list.isEmpty();
|
|
860
|
+
// Move the node to the head of the linked list
|
|
861
|
+
private moveToFront(node: DoublyLinkedListNode<CacheEntry<K, V>>): void {
|
|
862
|
+
this.list.delete(node);
|
|
863
|
+
this.list.unshift(node.value);
|
|
864
864
|
}
|
|
865
865
|
}
|
|
866
866
|
|
|
@@ -618,11 +618,6 @@ describe('SinglyLinkedList', () => {
|
|
|
618
618
|
list.push(3);
|
|
619
619
|
expect(list.map(value => value * 2).toArray()).toEqual([2, 4, 6]);
|
|
620
620
|
});
|
|
621
|
-
|
|
622
|
-
it('should reduce the list', () => {
|
|
623
|
-
const list1 = SinglyLinkedList.fromArray([1, 2, 3]);
|
|
624
|
-
expect(list1.reduce((acc, value) => acc + value, 0)).toEqual(6);
|
|
625
|
-
});
|
|
626
621
|
});
|
|
627
622
|
|
|
628
623
|
describe('iterable methods', () => {
|
|
@@ -651,9 +646,7 @@ describe('iterable methods', () => {
|
|
|
651
646
|
});
|
|
652
647
|
|
|
653
648
|
describe('classic uses', () => {
|
|
654
|
-
|
|
655
649
|
it('@example implementation of a basic text editor', () => {
|
|
656
|
-
|
|
657
650
|
class TextEditor {
|
|
658
651
|
private content: SinglyLinkedList<string>;
|
|
659
652
|
private cursorIndex: number;
|
|
@@ -139,21 +139,18 @@ describe('MaxPriorityQueue Operation Test', () => {
|
|
|
139
139
|
expect(filtered instanceof MaxPriorityQueue).toBe(true);
|
|
140
140
|
expect([...filtered]).toEqual([7, 1, 5]);
|
|
141
141
|
|
|
142
|
-
const mapped = filtered.map(
|
|
143
|
-
item => ({ key: item }),
|
|
144
|
-
(a, b) => b.key - a.key
|
|
145
|
-
);
|
|
142
|
+
const mapped = filtered.map(item => ({ key: item }), { comparator: (a, b) => b.key - a.key });
|
|
146
143
|
expect(mapped instanceof MaxPriorityQueue).toBe(true);
|
|
147
144
|
expect([...mapped]).toEqual([{ key: 7 }, { key: 1 }, { key: 5 }]);
|
|
148
145
|
});
|
|
149
146
|
|
|
150
|
-
it('should MaxPriorityQueue throw an error while initialed with object data', function () {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
});
|
|
147
|
+
// it('should MaxPriorityQueue throw an error while initialed with object data', function () {
|
|
148
|
+
// expect(() => {
|
|
149
|
+
// new MaxPriorityQueue<{ key: number }>([{ key: 7 }, { key: 1 }, { key: 7 }]);
|
|
150
|
+
// }).toThrow(
|
|
151
|
+
// "When comparing object types, a custom comparator must be defined in the constructor's options parameter."
|
|
152
|
+
// );
|
|
153
|
+
// });
|
|
157
154
|
|
|
158
155
|
it('should MaxPriorityQueue comparator return 0 when equal values are added', function () {
|
|
159
156
|
const duplicated = new MaxPriorityQueue<number>([7, 1, 7, 7]);
|
|
@@ -70,10 +70,7 @@ describe('MinPriorityQueue Operation Test', () => {
|
|
|
70
70
|
expect(filtered instanceof MinPriorityQueue).toBe(true);
|
|
71
71
|
expect([...filtered]).toEqual([1, 5, 7]);
|
|
72
72
|
|
|
73
|
-
const mapped = filtered.map(
|
|
74
|
-
item => ({ key: item }),
|
|
75
|
-
(a, b) => a.key - b.key
|
|
76
|
-
);
|
|
73
|
+
const mapped = filtered.map(item => ({ key: item }), { comparator: (a, b) => a.key - b.key });
|
|
77
74
|
expect(mapped instanceof MinPriorityQueue).toBe(true);
|
|
78
75
|
expect([...mapped]).toEqual([{ key: 1 }, { key: 5 }, { key: 7 }]);
|
|
79
76
|
expect(mapped.toVisual()).toEqual([{ key: 1 }, { key: 5 }, { key: 7 }]);
|
|
@@ -62,10 +62,7 @@ describe('PriorityQueue Operation Test', () => {
|
|
|
62
62
|
expect(filtered instanceof PriorityQueue).toBe(true);
|
|
63
63
|
expect([...filtered]).toEqual([1, 3, 5, 7]);
|
|
64
64
|
|
|
65
|
-
const mapped = filtered.map(
|
|
66
|
-
item => ({ key: item }),
|
|
67
|
-
(a, b) => a.key - b.key
|
|
68
|
-
);
|
|
65
|
+
const mapped = filtered.map(item => ({ key: item }), { comparator: (a, b) => a.key - b.key });
|
|
69
66
|
expect(mapped instanceof PriorityQueue).toBe(true);
|
|
70
67
|
expect([...mapped]).toEqual([{ key: 1 }, { key: 3 }, { key: 5 }, { key: 7 }]);
|
|
71
68
|
});
|
|
@@ -153,10 +153,9 @@ describe('Queue', () => {
|
|
|
153
153
|
expect(mappedQueue.at(0)).toBe(1);
|
|
154
154
|
expect([...mappedQueue]).toEqual([1, 6, 5, 3, 2, 4, 0]);
|
|
155
155
|
|
|
156
|
-
const mappedToElementFnQueue = queue.map<string, { id: string }>(
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
);
|
|
156
|
+
const mappedToElementFnQueue = queue.map<string, { id: string }>(item => item.key.toString(), {
|
|
157
|
+
toElementFn: rawElement => rawElement.id
|
|
158
|
+
});
|
|
160
159
|
expect(mappedToElementFnQueue.at(0)).toBe('1');
|
|
161
160
|
expect([...mappedToElementFnQueue]).toEqual(['1', '6', '5', '3', '2', '4', '0']);
|
|
162
161
|
|
|
@@ -603,7 +602,7 @@ describe('classic uses', () => {
|
|
|
603
602
|
let maxSum = 0;
|
|
604
603
|
let currentSum = 0;
|
|
605
604
|
|
|
606
|
-
nums.forEach(
|
|
605
|
+
nums.forEach(num => {
|
|
607
606
|
queue.push(num);
|
|
608
607
|
currentSum += num;
|
|
609
608
|
|