data-structure-typed 1.43.3 → 1.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- 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/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/cjs/data-structures/binary-tree/tree-multimap.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/cjs/data-structures/hash/hash-map.js.map +1 -0
- 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/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/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/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/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/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/cjs/{src/interfaces → interfaces}/graph.js.map +1 -1
- package/dist/cjs/{src/interfaces → interfaces}/heap.js.map +1 -1
- package/dist/cjs/interfaces/index.js.map +1 -0
- package/dist/cjs/interfaces/navigator.js.map +1 -0
- 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-multimap.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/cjs/{src/types → 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/dist/mjs/{src/data-structures → data-structures}/binary-tree/avl-tree.js +3 -8
- package/dist/mjs/{src/data-structures → data-structures}/binary-tree/binary-indexed-tree.js +3 -7
- package/dist/mjs/{src/data-structures → data-structures}/binary-tree/binary-tree.js +35 -40
- package/dist/mjs/{src/data-structures → data-structures}/binary-tree/bst.js +34 -39
- package/dist/mjs/data-structures/binary-tree/index.js +7 -0
- package/dist/mjs/{src/data-structures → data-structures}/binary-tree/rb-tree.js +42 -47
- package/dist/mjs/{src/data-structures → data-structures}/binary-tree/segment-tree.js +2 -7
- package/dist/mjs/{src/data-structures → data-structures}/binary-tree/tree-multimap.js +10 -15
- package/dist/mjs/{src/data-structures → data-structures}/graph/abstract-graph.js +9 -15
- package/dist/mjs/{src/data-structures → data-structures}/graph/directed-graph.js +9 -15
- package/dist/mjs/data-structures/graph/index.js +4 -0
- package/dist/mjs/{src/data-structures → data-structures}/graph/map-graph.js +4 -10
- package/dist/mjs/{src/data-structures → data-structures}/graph/undirected-graph.js +7 -13
- package/dist/mjs/{src/data-structures → data-structures}/hash/coordinate-map.js +1 -5
- package/dist/mjs/{src/data-structures → data-structures}/hash/coordinate-set.js +1 -5
- package/dist/mjs/{src/data-structures → data-structures}/hash/hash-map.js +1 -5
- package/dist/mjs/{src/data-structures → data-structures}/hash/hash-table.js +2 -7
- package/dist/mjs/data-structures/hash/index.js +6 -0
- package/dist/mjs/data-structures/hash/tree-map.js +2 -0
- package/dist/mjs/data-structures/hash/tree-set.js +2 -0
- package/dist/mjs/{src/data-structures → data-structures}/heap/heap.js +3 -9
- package/dist/mjs/data-structures/heap/index.js +3 -0
- package/dist/mjs/{src/data-structures → data-structures}/heap/max-heap.js +2 -6
- package/dist/mjs/{src/data-structures → data-structures}/heap/min-heap.js +2 -6
- package/dist/mjs/data-structures/index.js +11 -0
- package/dist/mjs/{src/data-structures → data-structures}/linked-list/doubly-linked-list.js +2 -7
- package/dist/mjs/data-structures/linked-list/index.js +3 -0
- package/dist/mjs/{src/data-structures → data-structures}/linked-list/singly-linked-list.js +2 -7
- package/dist/mjs/{src/data-structures → data-structures}/linked-list/skip-linked-list.js +2 -7
- package/dist/mjs/data-structures/matrix/index.js +4 -0
- package/dist/mjs/{src/data-structures → data-structures}/matrix/matrix.js +1 -5
- package/dist/mjs/{src/data-structures → data-structures}/matrix/matrix2d.js +4 -8
- package/dist/mjs/{src/data-structures → data-structures}/matrix/navigator.js +2 -7
- package/dist/mjs/{src/data-structures → data-structures}/matrix/vector2d.js +1 -5
- package/dist/mjs/{src/data-structures → data-structures}/priority-queue/max-priority-queue.js +2 -6
- package/dist/mjs/{src/data-structures → data-structures}/priority-queue/min-priority-queue.js +2 -6
- package/dist/mjs/data-structures/priority-queue/priority-queue.js +13 -0
- package/dist/mjs/{src/data-structures → data-structures}/queue/deque.js +4 -10
- package/dist/mjs/{src/data-structures → data-structures}/queue/queue.js +3 -8
- package/dist/mjs/{src/data-structures → data-structures}/stack/stack.js +1 -5
- package/dist/mjs/{src/data-structures → data-structures}/tree/tree.js +1 -5
- package/dist/mjs/{src/data-structures → data-structures}/trie/trie.js +2 -7
- package/dist/mjs/index.js +4 -0
- package/dist/mjs/interfaces/index.js +8 -0
- package/dist/mjs/{src/types → types}/data-structures/binary-tree/binary-tree.js +4 -7
- package/dist/mjs/types/data-structures/binary-tree/index.js +6 -0
- package/dist/mjs/types/data-structures/binary-tree/rb-tree.js +5 -0
- package/dist/mjs/types/data-structures/graph/directed-graph.js +6 -0
- package/dist/mjs/types/data-structures/graph/index.js +3 -0
- package/dist/mjs/types/data-structures/hash/hash-table.js +1 -0
- package/dist/mjs/types/data-structures/hash/index.js +1 -0
- package/dist/mjs/types/data-structures/hash/tree-map.d.ts +1 -0
- package/dist/mjs/types/data-structures/hash/tree-map.js +1 -0
- package/dist/mjs/types/data-structures/hash/tree-set.d.ts +1 -0
- package/dist/mjs/types/data-structures/hash/tree-set.js +1 -0
- package/dist/mjs/types/data-structures/heap/heap.d.ts +1 -0
- package/dist/mjs/types/data-structures/heap/heap.js +1 -0
- package/dist/mjs/types/data-structures/heap/index.js +1 -0
- package/dist/mjs/types/data-structures/heap/max-heap.d.ts +1 -0
- package/dist/mjs/types/data-structures/heap/max-heap.js +1 -0
- package/dist/mjs/types/data-structures/heap/min-heap.d.ts +1 -0
- package/dist/mjs/types/data-structures/heap/min-heap.js +1 -0
- package/dist/mjs/types/data-structures/index.js +11 -0
- package/dist/mjs/types/data-structures/linked-list/doubly-linked-list.d.ts +1 -0
- package/dist/mjs/types/data-structures/linked-list/doubly-linked-list.js +1 -0
- package/dist/mjs/types/data-structures/linked-list/index.js +2 -0
- package/dist/mjs/types/data-structures/linked-list/singly-linked-list.d.ts +1 -0
- package/dist/mjs/types/data-structures/linked-list/singly-linked-list.js +1 -0
- package/dist/mjs/types/data-structures/linked-list/skip-linked-list.d.ts +1 -0
- package/dist/mjs/types/data-structures/linked-list/skip-linked-list.js +1 -0
- package/dist/mjs/types/data-structures/matrix/index.js +1 -0
- package/dist/mjs/types/data-structures/matrix/matrix.d.ts +1 -0
- package/dist/mjs/types/data-structures/matrix/matrix.js +1 -0
- package/dist/mjs/types/data-structures/matrix/matrix2d.d.ts +1 -0
- package/dist/mjs/types/data-structures/matrix/matrix2d.js +1 -0
- package/dist/mjs/types/data-structures/matrix/navigator.js +1 -0
- package/dist/mjs/types/data-structures/matrix/vector2d.d.ts +1 -0
- package/dist/mjs/types/data-structures/matrix/vector2d.js +1 -0
- package/dist/mjs/types/data-structures/priority-queue/index.d.ts +3 -0
- package/dist/mjs/types/data-structures/priority-queue/index.js +3 -0
- package/dist/mjs/types/data-structures/priority-queue/max-priority-queue.d.ts +1 -0
- package/dist/mjs/types/data-structures/priority-queue/max-priority-queue.js +1 -0
- package/dist/mjs/types/data-structures/priority-queue/min-priority-queue.d.ts +1 -0
- package/dist/mjs/types/data-structures/priority-queue/min-priority-queue.js +1 -0
- package/dist/mjs/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
- package/dist/mjs/types/data-structures/priority-queue/priority-queue.js +1 -0
- package/dist/mjs/types/data-structures/queue/deque.d.ts +1 -0
- package/dist/mjs/types/data-structures/queue/deque.js +1 -0
- package/dist/mjs/types/data-structures/queue/index.d.ts +2 -0
- package/dist/mjs/types/data-structures/queue/index.js +2 -0
- package/dist/mjs/types/data-structures/queue/queue.d.ts +1 -0
- package/dist/mjs/types/data-structures/queue/queue.js +1 -0
- package/dist/mjs/types/data-structures/stack/index.d.ts +1 -0
- package/dist/mjs/types/data-structures/stack/index.js +1 -0
- package/dist/mjs/types/data-structures/stack/stack.d.ts +1 -0
- package/dist/mjs/types/data-structures/stack/stack.js +1 -0
- package/dist/mjs/types/data-structures/tree/index.d.ts +1 -0
- package/dist/mjs/types/data-structures/tree/index.js +1 -0
- package/dist/mjs/types/data-structures/tree/tree.d.ts +1 -0
- package/dist/mjs/types/data-structures/tree/tree.js +1 -0
- package/dist/mjs/types/data-structures/trie/index.d.ts +1 -0
- package/dist/mjs/types/data-structures/trie/index.js +1 -0
- package/dist/mjs/types/data-structures/trie/trie.d.ts +1 -0
- package/dist/mjs/types/data-structures/trie/trie.js +1 -0
- package/dist/mjs/types/helpers.js +6 -0
- package/dist/mjs/types/index.js +3 -0
- package/dist/mjs/types/utils/index.js +2 -0
- package/dist/mjs/types/utils/utils.js +1 -0
- package/dist/mjs/types/utils/validate-type.js +1 -0
- package/dist/mjs/utils/index.js +1 -0
- package/dist/mjs/utils/utils.js +54 -0
- package/dist/umd/data-structure-typed.js +288 -192
- package/dist/umd/data-structure-typed.min.js +5 -10
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +14 -15
- package/tsconfig-base.json +0 -1
- package/tsconfig-cjs.json +4 -3
- package/tsconfig-mjs.json +5 -3
- package/tsup.config.js +22 -18
- package/dist/cjs/src/data-structures/binary-tree/avl-tree.js.map +0 -1
- package/dist/cjs/src/data-structures/binary-tree/binary-indexed-tree.js.map +0 -1
- package/dist/cjs/src/data-structures/binary-tree/binary-tree.js.map +0 -1
- package/dist/cjs/src/data-structures/binary-tree/bst.js.map +0 -1
- package/dist/cjs/src/data-structures/binary-tree/index.js.map +0 -1
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.js.map +0 -1
- package/dist/cjs/src/data-structures/binary-tree/segment-tree.js.map +0 -1
- package/dist/cjs/src/data-structures/binary-tree/tree-multimap.js.map +0 -1
- package/dist/cjs/src/data-structures/graph/abstract-graph.js.map +0 -1
- package/dist/cjs/src/data-structures/graph/directed-graph.js.map +0 -1
- package/dist/cjs/src/data-structures/graph/index.js.map +0 -1
- package/dist/cjs/src/data-structures/graph/map-graph.js.map +0 -1
- package/dist/cjs/src/data-structures/graph/undirected-graph.js.map +0 -1
- package/dist/cjs/src/data-structures/hash/coordinate-map.js.map +0 -1
- package/dist/cjs/src/data-structures/hash/coordinate-set.js.map +0 -1
- package/dist/cjs/src/data-structures/hash/hash-map.js.map +0 -1
- package/dist/cjs/src/data-structures/hash/hash-table.js.map +0 -1
- package/dist/cjs/src/data-structures/hash/index.js.map +0 -1
- package/dist/cjs/src/data-structures/hash/tree-map.js.map +0 -1
- package/dist/cjs/src/data-structures/hash/tree-set.js.map +0 -1
- package/dist/cjs/src/data-structures/heap/heap.js.map +0 -1
- package/dist/cjs/src/data-structures/heap/index.js.map +0 -1
- package/dist/cjs/src/data-structures/heap/max-heap.js.map +0 -1
- package/dist/cjs/src/data-structures/heap/min-heap.js.map +0 -1
- package/dist/cjs/src/data-structures/index.js.map +0 -1
- package/dist/cjs/src/data-structures/linked-list/doubly-linked-list.js.map +0 -1
- package/dist/cjs/src/data-structures/linked-list/index.js.map +0 -1
- package/dist/cjs/src/data-structures/linked-list/singly-linked-list.js.map +0 -1
- package/dist/cjs/src/data-structures/linked-list/skip-linked-list.js.map +0 -1
- package/dist/cjs/src/data-structures/matrix/index.js.map +0 -1
- package/dist/cjs/src/data-structures/matrix/matrix.js.map +0 -1
- package/dist/cjs/src/data-structures/matrix/matrix2d.js.map +0 -1
- package/dist/cjs/src/data-structures/matrix/navigator.js.map +0 -1
- package/dist/cjs/src/data-structures/matrix/vector2d.js.map +0 -1
- package/dist/cjs/src/data-structures/priority-queue/index.js.map +0 -1
- package/dist/cjs/src/data-structures/priority-queue/max-priority-queue.js.map +0 -1
- package/dist/cjs/src/data-structures/priority-queue/min-priority-queue.js.map +0 -1
- package/dist/cjs/src/data-structures/priority-queue/priority-queue.js.map +0 -1
- package/dist/cjs/src/data-structures/queue/deque.js.map +0 -1
- package/dist/cjs/src/data-structures/queue/index.js.map +0 -1
- package/dist/cjs/src/data-structures/queue/queue.js.map +0 -1
- package/dist/cjs/src/data-structures/stack/index.js.map +0 -1
- package/dist/cjs/src/data-structures/stack/stack.js.map +0 -1
- package/dist/cjs/src/data-structures/tree/index.js.map +0 -1
- package/dist/cjs/src/data-structures/tree/tree.js.map +0 -1
- package/dist/cjs/src/data-structures/trie/index.js.map +0 -1
- package/dist/cjs/src/data-structures/trie/trie.js.map +0 -1
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/interfaces/binary-tree.js.map +0 -1
- package/dist/cjs/src/interfaces/doubly-linked-list.js.map +0 -1
- package/dist/cjs/src/interfaces/index.js.map +0 -1
- package/dist/cjs/src/interfaces/navigator.js.map +0 -1
- package/dist/cjs/src/interfaces/priority-queue.js.map +0 -1
- package/dist/cjs/src/interfaces/segment-tree.js.map +0 -1
- package/dist/cjs/src/interfaces/singly-linked-list.js.map +0 -1
- package/dist/cjs/src/types/data-structures/binary-tree/avl-tree.js.map +0 -1
- package/dist/cjs/src/types/data-structures/binary-tree/binary-indexed-tree.js.map +0 -1
- package/dist/cjs/src/types/data-structures/binary-tree/binary-tree.js.map +0 -1
- package/dist/cjs/src/types/data-structures/binary-tree/bst.js.map +0 -1
- package/dist/cjs/src/types/data-structures/binary-tree/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/binary-tree/rb-tree.js.map +0 -1
- package/dist/cjs/src/types/data-structures/binary-tree/segment-tree.js.map +0 -1
- package/dist/cjs/src/types/data-structures/binary-tree/tree-multimap.js.map +0 -1
- package/dist/cjs/src/types/data-structures/graph/abstract-graph.js.map +0 -1
- package/dist/cjs/src/types/data-structures/graph/directed-graph.js.map +0 -1
- package/dist/cjs/src/types/data-structures/graph/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/graph/map-graph.js.map +0 -1
- package/dist/cjs/src/types/data-structures/graph/undirected-graph.js.map +0 -1
- package/dist/cjs/src/types/data-structures/hash/coordinate-map.js.map +0 -1
- package/dist/cjs/src/types/data-structures/hash/coordinate-set.js.map +0 -1
- package/dist/cjs/src/types/data-structures/hash/hash-map.js.map +0 -1
- package/dist/cjs/src/types/data-structures/hash/hash-table.js.map +0 -1
- package/dist/cjs/src/types/data-structures/hash/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/hash/tree-map.js.map +0 -1
- package/dist/cjs/src/types/data-structures/hash/tree-set.js.map +0 -1
- package/dist/cjs/src/types/data-structures/heap/heap.js.map +0 -1
- package/dist/cjs/src/types/data-structures/heap/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/heap/max-heap.js.map +0 -1
- package/dist/cjs/src/types/data-structures/heap/min-heap.js.map +0 -1
- package/dist/cjs/src/types/data-structures/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/linked-list/doubly-linked-list.js.map +0 -1
- package/dist/cjs/src/types/data-structures/linked-list/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/linked-list/singly-linked-list.js.map +0 -1
- package/dist/cjs/src/types/data-structures/linked-list/skip-linked-list.js.map +0 -1
- package/dist/cjs/src/types/data-structures/matrix/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/matrix/matrix.js.map +0 -1
- package/dist/cjs/src/types/data-structures/matrix/matrix2d.js.map +0 -1
- package/dist/cjs/src/types/data-structures/matrix/navigator.js.map +0 -1
- package/dist/cjs/src/types/data-structures/matrix/vector2d.js.map +0 -1
- package/dist/cjs/src/types/data-structures/priority-queue/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/priority-queue/max-priority-queue.js.map +0 -1
- package/dist/cjs/src/types/data-structures/priority-queue/min-priority-queue.js.map +0 -1
- package/dist/cjs/src/types/data-structures/priority-queue/priority-queue.js.map +0 -1
- package/dist/cjs/src/types/data-structures/queue/deque.js.map +0 -1
- package/dist/cjs/src/types/data-structures/queue/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/queue/queue.js.map +0 -1
- package/dist/cjs/src/types/data-structures/stack/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/stack/stack.js.map +0 -1
- package/dist/cjs/src/types/data-structures/tree/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/tree/tree.js.map +0 -1
- package/dist/cjs/src/types/data-structures/trie/index.js.map +0 -1
- package/dist/cjs/src/types/data-structures/trie/trie.js.map +0 -1
- package/dist/cjs/src/types/helpers.js.map +0 -1
- package/dist/cjs/src/types/index.js.map +0 -1
- package/dist/cjs/src/types/utils/index.js.map +0 -1
- package/dist/cjs/src/types/utils/validate-type.js.map +0 -1
- package/dist/cjs/src/utils/index.js.map +0 -1
- package/dist/cjs/src/utils/utils.js.map +0 -1
- package/dist/mjs/src/data-structures/binary-tree/index.js +0 -23
- package/dist/mjs/src/data-structures/graph/index.js +0 -20
- package/dist/mjs/src/data-structures/hash/index.js +0 -22
- package/dist/mjs/src/data-structures/hash/tree-map.js +0 -6
- package/dist/mjs/src/data-structures/hash/tree-set.js +0 -6
- package/dist/mjs/src/data-structures/heap/index.js +0 -19
- package/dist/mjs/src/data-structures/index.js +0 -27
- package/dist/mjs/src/data-structures/linked-list/index.js +0 -19
- package/dist/mjs/src/data-structures/matrix/index.js +0 -20
- package/dist/mjs/src/data-structures/priority-queue/index.js +0 -19
- package/dist/mjs/src/data-structures/priority-queue/priority-queue.js +0 -17
- package/dist/mjs/src/data-structures/queue/index.js +0 -18
- package/dist/mjs/src/data-structures/stack/index.js +0 -17
- package/dist/mjs/src/data-structures/tree/index.js +0 -17
- package/dist/mjs/src/data-structures/trie/index.js +0 -17
- package/dist/mjs/src/index.js +0 -20
- package/dist/mjs/src/interfaces/binary-tree.js +0 -2
- package/dist/mjs/src/interfaces/doubly-linked-list.js +0 -2
- package/dist/mjs/src/interfaces/graph.js +0 -2
- package/dist/mjs/src/interfaces/heap.js +0 -2
- package/dist/mjs/src/interfaces/index.js +0 -24
- package/dist/mjs/src/interfaces/navigator.js +0 -2
- package/dist/mjs/src/interfaces/priority-queue.js +0 -2
- package/dist/mjs/src/interfaces/segment-tree.js +0 -2
- package/dist/mjs/src/interfaces/singly-linked-list.js +0 -2
- package/dist/mjs/src/types/data-structures/binary-tree/avl-tree.js +0 -2
- package/dist/mjs/src/types/data-structures/binary-tree/binary-indexed-tree.js +0 -2
- package/dist/mjs/src/types/data-structures/binary-tree/bst.js +0 -2
- package/dist/mjs/src/types/data-structures/binary-tree/index.js +0 -22
- package/dist/mjs/src/types/data-structures/binary-tree/rb-tree.js +0 -8
- package/dist/mjs/src/types/data-structures/binary-tree/segment-tree.js +0 -2
- package/dist/mjs/src/types/data-structures/binary-tree/tree-multimap.js +0 -2
- package/dist/mjs/src/types/data-structures/graph/abstract-graph.js +0 -2
- package/dist/mjs/src/types/data-structures/graph/directed-graph.js +0 -9
- package/dist/mjs/src/types/data-structures/graph/index.js +0 -19
- package/dist/mjs/src/types/data-structures/graph/map-graph.js +0 -2
- package/dist/mjs/src/types/data-structures/graph/undirected-graph.js +0 -2
- package/dist/mjs/src/types/data-structures/hash/coordinate-map.js +0 -2
- package/dist/mjs/src/types/data-structures/hash/coordinate-set.js +0 -2
- package/dist/mjs/src/types/data-structures/hash/hash-map.js +0 -2
- package/dist/mjs/src/types/data-structures/hash/hash-table.js +0 -2
- package/dist/mjs/src/types/data-structures/hash/index.js +0 -2
- package/dist/mjs/src/types/data-structures/hash/tree-map.js +0 -2
- package/dist/mjs/src/types/data-structures/hash/tree-set.js +0 -2
- package/dist/mjs/src/types/data-structures/heap/heap.js +0 -2
- package/dist/mjs/src/types/data-structures/heap/index.js +0 -17
- package/dist/mjs/src/types/data-structures/heap/max-heap.js +0 -2
- package/dist/mjs/src/types/data-structures/heap/min-heap.js +0 -2
- package/dist/mjs/src/types/data-structures/index.js +0 -27
- package/dist/mjs/src/types/data-structures/linked-list/doubly-linked-list.js +0 -2
- package/dist/mjs/src/types/data-structures/linked-list/index.js +0 -18
- package/dist/mjs/src/types/data-structures/linked-list/singly-linked-list.js +0 -2
- package/dist/mjs/src/types/data-structures/linked-list/skip-linked-list.js +0 -2
- package/dist/mjs/src/types/data-structures/matrix/index.js +0 -17
- package/dist/mjs/src/types/data-structures/matrix/matrix.js +0 -2
- package/dist/mjs/src/types/data-structures/matrix/matrix2d.js +0 -2
- package/dist/mjs/src/types/data-structures/matrix/navigator.js +0 -2
- package/dist/mjs/src/types/data-structures/matrix/vector2d.js +0 -2
- package/dist/mjs/src/types/data-structures/priority-queue/index.js +0 -19
- package/dist/mjs/src/types/data-structures/priority-queue/max-priority-queue.js +0 -2
- package/dist/mjs/src/types/data-structures/priority-queue/min-priority-queue.js +0 -2
- package/dist/mjs/src/types/data-structures/priority-queue/priority-queue.js +0 -2
- package/dist/mjs/src/types/data-structures/queue/deque.js +0 -2
- package/dist/mjs/src/types/data-structures/queue/index.js +0 -18
- package/dist/mjs/src/types/data-structures/queue/queue.js +0 -2
- package/dist/mjs/src/types/data-structures/stack/index.js +0 -17
- package/dist/mjs/src/types/data-structures/stack/stack.js +0 -2
- package/dist/mjs/src/types/data-structures/tree/index.js +0 -17
- package/dist/mjs/src/types/data-structures/tree/tree.js +0 -2
- package/dist/mjs/src/types/data-structures/trie/index.js +0 -17
- package/dist/mjs/src/types/data-structures/trie/trie.js +0 -2
- package/dist/mjs/src/types/helpers.js +0 -9
- package/dist/mjs/src/types/index.js +0 -19
- package/dist/mjs/src/types/utils/index.js +0 -18
- package/dist/mjs/src/types/utils/utils.js +0 -2
- package/dist/mjs/src/types/utils/validate-type.js +0 -2
- package/dist/mjs/src/utils/index.js +0 -17
- package/dist/mjs/src/utils/utils.js +0 -64
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/avl-tree.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/avl-tree.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/binary-indexed-tree.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/binary-indexed-tree.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/binary-tree.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/binary-tree.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/bst.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/bst.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/rb-tree.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/rb-tree.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/segment-tree.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/segment-tree.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/tree-multimap.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/binary-tree/tree-multimap.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/abstract-graph.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/abstract-graph.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/directed-graph.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/directed-graph.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/map-graph.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/map-graph.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/undirected-graph.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/graph/undirected-graph.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/coordinate-map.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/coordinate-map.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/coordinate-set.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/coordinate-set.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/hash-map.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/hash-map.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/hash-table.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/hash-table.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/tree-map.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/tree-map.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/tree-set.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/hash/tree-set.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/heap/heap.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/heap/heap.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/heap/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/heap/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/heap/max-heap.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/heap/max-heap.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/heap/min-heap.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/heap/min-heap.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/linked-list/doubly-linked-list.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/linked-list/doubly-linked-list.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/linked-list/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/linked-list/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/linked-list/singly-linked-list.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/linked-list/singly-linked-list.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/linked-list/skip-linked-list.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/linked-list/skip-linked-list.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/matrix.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/matrix.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/matrix2d.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/matrix2d.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/navigator.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/navigator.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/vector2d.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/matrix/vector2d.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/priority-queue/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/priority-queue/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/priority-queue/max-priority-queue.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/priority-queue/max-priority-queue.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/priority-queue/min-priority-queue.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/priority-queue/min-priority-queue.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/priority-queue/priority-queue.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/priority-queue/priority-queue.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/queue/deque.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/queue/deque.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/queue/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/queue/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/queue/queue.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/queue/queue.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/stack/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/stack/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/stack/stack.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/stack/stack.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/tree/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/tree/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/tree/tree.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/tree/tree.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/trie/index.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/trie/index.js +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/trie/trie.d.ts +0 -0
- /package/dist/cjs/{src/data-structures → data-structures}/trie/trie.js +0 -0
- /package/dist/cjs/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/cjs/{src/index.js → index.js} +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/binary-tree.d.ts +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/binary-tree.js +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/doubly-linked-list.d.ts +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/doubly-linked-list.js +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/graph.d.ts +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/graph.js +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/heap.d.ts +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/heap.js +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/index.d.ts +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/index.js +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/navigator.d.ts +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/navigator.js +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/priority-queue.d.ts +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/priority-queue.js +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/segment-tree.d.ts +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/segment-tree.js +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/singly-linked-list.d.ts +0 -0
- /package/dist/cjs/{src/interfaces → interfaces}/singly-linked-list.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/avl-tree.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/avl-tree.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/binary-indexed-tree.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/binary-indexed-tree.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/binary-tree.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/binary-tree.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/bst.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/bst.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/rb-tree.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/rb-tree.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/segment-tree.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/segment-tree.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/tree-multimap.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/binary-tree/tree-multimap.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/abstract-graph.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/abstract-graph.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/directed-graph.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/directed-graph.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/map-graph.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/map-graph.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/undirected-graph.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/graph/undirected-graph.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/coordinate-map.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/coordinate-map.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/coordinate-set.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/coordinate-set.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/hash-map.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/hash-map.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/hash-table.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/hash-table.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/tree-map.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/tree-map.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/tree-set.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/hash/tree-set.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/heap/heap.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/heap/heap.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/heap/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/heap/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/heap/max-heap.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/heap/max-heap.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/heap/min-heap.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/heap/min-heap.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/linked-list/doubly-linked-list.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/linked-list/doubly-linked-list.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/linked-list/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/linked-list/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/linked-list/singly-linked-list.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/linked-list/singly-linked-list.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/linked-list/skip-linked-list.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/linked-list/skip-linked-list.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/matrix.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/matrix.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/matrix2d.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/matrix2d.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/navigator.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/navigator.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/vector2d.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/matrix/vector2d.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/priority-queue/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/priority-queue/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/priority-queue/max-priority-queue.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/priority-queue/max-priority-queue.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/priority-queue/min-priority-queue.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/priority-queue/min-priority-queue.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/priority-queue/priority-queue.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/priority-queue/priority-queue.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/queue/deque.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/queue/deque.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/queue/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/queue/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/queue/queue.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/queue/queue.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/stack/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/stack/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/stack/stack.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/stack/stack.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/tree/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/tree/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/tree/tree.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/tree/tree.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/trie/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/trie/index.js +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/trie/trie.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/data-structures/trie/trie.js +0 -0
- /package/dist/cjs/{src/types → types}/helpers.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/helpers.js +0 -0
- /package/dist/cjs/{src/types → types}/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/index.js +0 -0
- /package/dist/cjs/{src/types → types}/utils/index.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/utils/index.js +0 -0
- /package/dist/cjs/{src/types → types}/utils/utils.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/utils/utils.js +0 -0
- /package/dist/cjs/{src/types → types}/utils/validate-type.d.ts +0 -0
- /package/dist/cjs/{src/types → types}/utils/validate-type.js +0 -0
- /package/dist/cjs/{src/utils → utils}/index.d.ts +0 -0
- /package/dist/cjs/{src/utils → utils}/index.js +0 -0
- /package/dist/cjs/{src/utils → utils}/utils.d.ts +0 -0
- /package/dist/cjs/{src/utils → utils}/utils.js +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/binary-tree/avl-tree.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/binary-tree/binary-indexed-tree.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/binary-tree/binary-tree.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/binary-tree/bst.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/binary-tree/index.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/binary-tree/rb-tree.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/binary-tree/segment-tree.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/binary-tree/tree-multimap.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/graph/abstract-graph.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/graph/directed-graph.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/graph/index.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/graph/map-graph.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/graph/undirected-graph.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/hash/coordinate-map.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/hash/coordinate-set.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/hash/hash-map.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/hash/hash-table.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/hash/index.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/hash/tree-map.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/hash/tree-set.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/heap/heap.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/heap/index.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/heap/max-heap.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/heap/min-heap.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/index.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/linked-list/doubly-linked-list.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/linked-list/index.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/linked-list/singly-linked-list.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/linked-list/skip-linked-list.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/matrix/index.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/matrix/matrix.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/matrix/matrix2d.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/matrix/navigator.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/matrix/vector2d.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/priority-queue/index.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/priority-queue/index.d.ts → data-structures/priority-queue/index.js} +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/priority-queue/max-priority-queue.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/priority-queue/min-priority-queue.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/priority-queue/priority-queue.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/queue/deque.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/queue/index.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/queue/index.d.ts → data-structures/queue/index.js} +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/queue/queue.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/stack/index.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/stack/index.d.ts → data-structures/stack/index.js} +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/stack/stack.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/tree/index.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/tree/index.d.ts → data-structures/tree/index.js} +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/tree/tree.d.ts +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/trie/index.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/trie/index.d.ts → data-structures/trie/index.js} +0 -0
- /package/dist/mjs/{src/data-structures → data-structures}/trie/trie.d.ts +0 -0
- /package/dist/mjs/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/mjs/{src/interfaces → interfaces}/binary-tree.d.ts +0 -0
- /package/dist/mjs/{src/interfaces/doubly-linked-list.d.ts → interfaces/binary-tree.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/linked-list → interfaces}/doubly-linked-list.d.ts +0 -0
- /package/dist/mjs/{src/interfaces/heap.d.ts → interfaces/doubly-linked-list.js} +0 -0
- /package/dist/mjs/{src/interfaces → interfaces}/graph.d.ts +0 -0
- /package/dist/mjs/{src/interfaces/navigator.d.ts → interfaces/graph.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/heap → interfaces}/heap.d.ts +0 -0
- /package/dist/mjs/{src/interfaces/priority-queue.d.ts → interfaces/heap.js} +0 -0
- /package/dist/mjs/{src/interfaces → interfaces}/index.d.ts +0 -0
- /package/dist/mjs/{src/interfaces/segment-tree.d.ts → interfaces/navigator.d.ts} +0 -0
- /package/dist/mjs/{src/interfaces/singly-linked-list.d.ts → interfaces/navigator.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/priority-queue → interfaces}/priority-queue.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/binary-tree/binary-indexed-tree.d.ts → interfaces/priority-queue.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/graph/undirected-graph.d.ts → interfaces/segment-tree.d.ts} +0 -0
- /package/dist/mjs/{src/types/data-structures/hash/coordinate-map.d.ts → interfaces/segment-tree.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/linked-list → interfaces}/singly-linked-list.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/hash/coordinate-set.d.ts → interfaces/singly-linked-list.js} +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/binary-tree/avl-tree.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/hash/hash-map.d.ts → types/data-structures/binary-tree/avl-tree.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/hash/hash-table.d.ts → types/data-structures/binary-tree/binary-indexed-tree.d.ts} +0 -0
- /package/dist/mjs/{src/types/data-structures/hash/tree-map.d.ts → types/data-structures/binary-tree/binary-indexed-tree.js} +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/binary-tree/binary-tree.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/binary-tree/bst.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/hash/tree-set.d.ts → types/data-structures/binary-tree/bst.js} +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/binary-tree/index.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/binary-tree/rb-tree.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/binary-tree/segment-tree.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/heap/max-heap.d.ts → types/data-structures/binary-tree/segment-tree.js} +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/binary-tree/tree-multimap.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/heap/min-heap.d.ts → types/data-structures/binary-tree/tree-multimap.js} +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/graph/abstract-graph.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/linked-list/skip-linked-list.d.ts → types/data-structures/graph/abstract-graph.js} +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/graph/directed-graph.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/graph/index.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/graph/map-graph.d.ts +0 -0
- /package/dist/mjs/{src/types/data-structures/matrix/matrix.d.ts → types/data-structures/graph/map-graph.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/matrix/matrix2d.d.ts → types/data-structures/graph/undirected-graph.d.ts} +0 -0
- /package/dist/mjs/{src/types/data-structures/matrix/vector2d.d.ts → types/data-structures/graph/undirected-graph.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/priority-queue/max-priority-queue.d.ts → types/data-structures/hash/coordinate-map.d.ts} +0 -0
- /package/dist/mjs/{src/types/data-structures/priority-queue/min-priority-queue.d.ts → types/data-structures/hash/coordinate-map.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/queue/deque.d.ts → types/data-structures/hash/coordinate-set.d.ts} +0 -0
- /package/dist/mjs/{src/types/data-structures/queue/queue.d.ts → types/data-structures/hash/coordinate-set.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/stack/stack.d.ts → types/data-structures/hash/hash-map.d.ts} +0 -0
- /package/dist/mjs/{src/types/data-structures/tree/tree.d.ts → types/data-structures/hash/hash-map.js} +0 -0
- /package/dist/mjs/{src/types/data-structures/trie/trie.d.ts → types/data-structures/hash/hash-table.d.ts} +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/hash/index.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/heap/index.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/index.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/linked-list/index.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/matrix/index.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/data-structures/matrix/navigator.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/helpers.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/index.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/utils/index.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/utils/utils.d.ts +0 -0
- /package/dist/mjs/{src/types → types}/utils/validate-type.d.ts +0 -0
- /package/dist/mjs/{src/utils → utils}/index.d.ts +0 -0
- /package/dist/mjs/{src/utils → utils}/utils.d.ts +0 -0
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* data-structure-typed
|
|
4
3
|
*
|
|
@@ -6,17 +5,15 @@
|
|
|
6
5
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
7
6
|
* @license MIT License
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const utils_1 = require("../../utils");
|
|
13
|
-
const queue_1 = require("../queue");
|
|
8
|
+
import { FamilyPosition, IterationType } from '../../types';
|
|
9
|
+
import { trampoline } from '../../utils';
|
|
10
|
+
import { Queue } from '../queue';
|
|
14
11
|
/**
|
|
15
12
|
* Represents a node in a binary tree.
|
|
16
13
|
* @template V - The type of data stored in the node.
|
|
17
14
|
* @template N - The type of the family relationship in the binary tree.
|
|
18
15
|
*/
|
|
19
|
-
class BinaryTreeNode {
|
|
16
|
+
export class BinaryTreeNode {
|
|
20
17
|
/**
|
|
21
18
|
* The key associated with the node.
|
|
22
19
|
*/
|
|
@@ -79,31 +76,30 @@ class BinaryTreeNode {
|
|
|
79
76
|
get familyPosition() {
|
|
80
77
|
const that = this;
|
|
81
78
|
if (!this.parent) {
|
|
82
|
-
return this.left || this.right ?
|
|
79
|
+
return this.left || this.right ? FamilyPosition.ROOT : FamilyPosition.ISOLATED;
|
|
83
80
|
}
|
|
84
81
|
if (this.parent.left === that) {
|
|
85
|
-
return this.left || this.right ?
|
|
82
|
+
return this.left || this.right ? FamilyPosition.ROOT_LEFT : FamilyPosition.LEFT;
|
|
86
83
|
}
|
|
87
84
|
else if (this.parent.right === that) {
|
|
88
|
-
return this.left || this.right ?
|
|
85
|
+
return this.left || this.right ? FamilyPosition.ROOT_RIGHT : FamilyPosition.RIGHT;
|
|
89
86
|
}
|
|
90
|
-
return
|
|
87
|
+
return FamilyPosition.MAL_NODE;
|
|
91
88
|
}
|
|
92
89
|
}
|
|
93
|
-
exports.BinaryTreeNode = BinaryTreeNode;
|
|
94
90
|
/**
|
|
95
91
|
* Represents a binary tree data structure.
|
|
96
92
|
* @template N - The type of the binary tree's nodes.
|
|
97
93
|
*/
|
|
98
|
-
class BinaryTree {
|
|
99
|
-
iterationType =
|
|
94
|
+
export class BinaryTree {
|
|
95
|
+
iterationType = IterationType.ITERATIVE;
|
|
100
96
|
/**
|
|
101
97
|
* Creates a new instance of BinaryTree.
|
|
102
98
|
* @param {BinaryTreeOptions} [options] - The options for the binary tree.
|
|
103
99
|
*/
|
|
104
100
|
constructor(options) {
|
|
105
101
|
if (options) {
|
|
106
|
-
const { iterationType =
|
|
102
|
+
const { iterationType = IterationType.ITERATIVE } = options;
|
|
107
103
|
this.iterationType = iterationType;
|
|
108
104
|
}
|
|
109
105
|
this._size = 0;
|
|
@@ -151,7 +147,7 @@ class BinaryTree {
|
|
|
151
147
|
*/
|
|
152
148
|
add(keyOrNode, value) {
|
|
153
149
|
const _bfs = (root, newNode) => {
|
|
154
|
-
const queue = new
|
|
150
|
+
const queue = new Queue([root]);
|
|
155
151
|
while (queue.size > 0) {
|
|
156
152
|
const cur = queue.shift();
|
|
157
153
|
if (newNode && cur.key === newNode.key) {
|
|
@@ -284,10 +280,10 @@ class BinaryTree {
|
|
|
284
280
|
}
|
|
285
281
|
else {
|
|
286
282
|
const { familyPosition: fp } = curr;
|
|
287
|
-
if (fp ===
|
|
283
|
+
if (fp === FamilyPosition.LEFT || fp === FamilyPosition.ROOT_LEFT) {
|
|
288
284
|
parent.left = curr.right;
|
|
289
285
|
}
|
|
290
|
-
else if (fp ===
|
|
286
|
+
else if (fp === FamilyPosition.RIGHT || fp === FamilyPosition.ROOT_RIGHT) {
|
|
291
287
|
parent.right = curr.right;
|
|
292
288
|
}
|
|
293
289
|
needBalanced = parent;
|
|
@@ -366,7 +362,7 @@ class BinaryTree {
|
|
|
366
362
|
beginRoot = this.ensureNotKey(beginRoot);
|
|
367
363
|
if (!beginRoot)
|
|
368
364
|
return -1;
|
|
369
|
-
if (iterationType ===
|
|
365
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
370
366
|
const _getMaxHeight = (cur) => {
|
|
371
367
|
if (!cur)
|
|
372
368
|
return -1;
|
|
@@ -412,7 +408,7 @@ class BinaryTree {
|
|
|
412
408
|
beginRoot = this.ensureNotKey(beginRoot);
|
|
413
409
|
if (!beginRoot)
|
|
414
410
|
return -1;
|
|
415
|
-
if (iterationType ===
|
|
411
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
416
412
|
const _getMinHeight = (cur) => {
|
|
417
413
|
if (!cur)
|
|
418
414
|
return 0;
|
|
@@ -506,7 +502,7 @@ class BinaryTree {
|
|
|
506
502
|
if (!beginRoot)
|
|
507
503
|
return [];
|
|
508
504
|
const ans = [];
|
|
509
|
-
if (iterationType ===
|
|
505
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
510
506
|
const _traverse = (cur) => {
|
|
511
507
|
if (callback(cur) === identifier) {
|
|
512
508
|
ans.push(cur);
|
|
@@ -521,7 +517,7 @@ class BinaryTree {
|
|
|
521
517
|
_traverse(beginRoot);
|
|
522
518
|
}
|
|
523
519
|
else {
|
|
524
|
-
const queue = new
|
|
520
|
+
const queue = new Queue([beginRoot]);
|
|
525
521
|
while (queue.size > 0) {
|
|
526
522
|
const cur = queue.shift();
|
|
527
523
|
if (cur) {
|
|
@@ -614,10 +610,10 @@ class BinaryTree {
|
|
|
614
610
|
* @returns The function `getNodeByKey` returns a node (`N`) if a node with the specified key is
|
|
615
611
|
* found in the binary tree. If no node is found, it returns `undefined`.
|
|
616
612
|
*/
|
|
617
|
-
getNodeByKey(key, iterationType =
|
|
613
|
+
getNodeByKey(key, iterationType = IterationType.ITERATIVE) {
|
|
618
614
|
if (!this.root)
|
|
619
615
|
return undefined;
|
|
620
|
-
if (iterationType ===
|
|
616
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
621
617
|
const _dfs = (cur) => {
|
|
622
618
|
if (cur.key === key)
|
|
623
619
|
return cur;
|
|
@@ -631,7 +627,7 @@ class BinaryTree {
|
|
|
631
627
|
return _dfs(this.root);
|
|
632
628
|
}
|
|
633
629
|
else {
|
|
634
|
-
const queue = new
|
|
630
|
+
const queue = new Queue([this.root]);
|
|
635
631
|
while (queue.size > 0) {
|
|
636
632
|
const cur = queue.shift();
|
|
637
633
|
if (cur) {
|
|
@@ -654,7 +650,7 @@ class BinaryTree {
|
|
|
654
650
|
* @returns either the node corresponding to the given key if it is a valid node key, or the key
|
|
655
651
|
* itself if it is not a valid node key.
|
|
656
652
|
*/
|
|
657
|
-
ensureNotKey(key, iterationType =
|
|
653
|
+
ensureNotKey(key, iterationType = IterationType.ITERATIVE) {
|
|
658
654
|
return this.isNodeKey(key) ? this.getNodeByKey(key, iterationType) : key;
|
|
659
655
|
}
|
|
660
656
|
/**
|
|
@@ -757,7 +753,7 @@ class BinaryTree {
|
|
|
757
753
|
beginRoot = this.ensureNotKey(beginRoot);
|
|
758
754
|
if (!beginRoot)
|
|
759
755
|
return beginRoot;
|
|
760
|
-
if (iterationType ===
|
|
756
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
761
757
|
const _traverse = (cur) => {
|
|
762
758
|
if (!this.isRealNode(cur.left))
|
|
763
759
|
return cur;
|
|
@@ -767,7 +763,7 @@ class BinaryTree {
|
|
|
767
763
|
}
|
|
768
764
|
else {
|
|
769
765
|
// Indirect implementation of iteration using tail recursion optimization
|
|
770
|
-
const _traverse =
|
|
766
|
+
const _traverse = trampoline((cur) => {
|
|
771
767
|
if (!this.isRealNode(cur.left))
|
|
772
768
|
return cur;
|
|
773
769
|
return _traverse.cont(cur.left);
|
|
@@ -799,7 +795,7 @@ class BinaryTree {
|
|
|
799
795
|
beginRoot = this.ensureNotKey(beginRoot);
|
|
800
796
|
if (!beginRoot)
|
|
801
797
|
return beginRoot;
|
|
802
|
-
if (iterationType ===
|
|
798
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
803
799
|
const _traverse = (cur) => {
|
|
804
800
|
if (!this.isRealNode(cur.right))
|
|
805
801
|
return cur;
|
|
@@ -809,7 +805,7 @@ class BinaryTree {
|
|
|
809
805
|
}
|
|
810
806
|
else {
|
|
811
807
|
// Indirect implementation of iteration using tail recursion optimization
|
|
812
|
-
const _traverse =
|
|
808
|
+
const _traverse = trampoline((cur) => {
|
|
813
809
|
if (!this.isRealNode(cur.right))
|
|
814
810
|
return cur;
|
|
815
811
|
return _traverse.cont(cur.right);
|
|
@@ -838,7 +834,7 @@ class BinaryTree {
|
|
|
838
834
|
beginRoot = this.ensureNotKey(beginRoot);
|
|
839
835
|
if (!beginRoot)
|
|
840
836
|
return true;
|
|
841
|
-
if (iterationType ===
|
|
837
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
842
838
|
const dfs = (cur, min, max) => {
|
|
843
839
|
if (!cur)
|
|
844
840
|
return true;
|
|
@@ -916,7 +912,7 @@ class BinaryTree {
|
|
|
916
912
|
const ans = [];
|
|
917
913
|
if (!beginRoot)
|
|
918
914
|
return ans;
|
|
919
|
-
if (iterationType ===
|
|
915
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
920
916
|
const _traverse = (cur) => {
|
|
921
917
|
if (cur !== undefined) {
|
|
922
918
|
ans.push(callback(cur));
|
|
@@ -1012,12 +1008,12 @@ class BinaryTree {
|
|
|
1012
1008
|
* `false`, null or undefined
|
|
1013
1009
|
* @returns an array of values that are the return values of the callback function.
|
|
1014
1010
|
*/
|
|
1015
|
-
dfs(callback = this._defaultOneParamCallback, pattern = 'in', beginRoot = this.root, iterationType =
|
|
1011
|
+
dfs(callback = this._defaultOneParamCallback, pattern = 'in', beginRoot = this.root, iterationType = IterationType.ITERATIVE, includeNull = false) {
|
|
1016
1012
|
beginRoot = this.ensureNotKey(beginRoot);
|
|
1017
1013
|
if (!beginRoot)
|
|
1018
1014
|
return [];
|
|
1019
1015
|
const ans = [];
|
|
1020
|
-
if (iterationType ===
|
|
1016
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
1021
1017
|
const _traverse = (node) => {
|
|
1022
1018
|
switch (pattern) {
|
|
1023
1019
|
case 'in':
|
|
@@ -1148,8 +1144,8 @@ class BinaryTree {
|
|
|
1148
1144
|
if (!beginRoot)
|
|
1149
1145
|
return [];
|
|
1150
1146
|
const ans = [];
|
|
1151
|
-
if (iterationType ===
|
|
1152
|
-
const queue = new
|
|
1147
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
1148
|
+
const queue = new Queue([beginRoot]);
|
|
1153
1149
|
const traverse = (level) => {
|
|
1154
1150
|
if (queue.size === 0)
|
|
1155
1151
|
return;
|
|
@@ -1172,7 +1168,7 @@ class BinaryTree {
|
|
|
1172
1168
|
traverse(0);
|
|
1173
1169
|
}
|
|
1174
1170
|
else {
|
|
1175
|
-
const queue = new
|
|
1171
|
+
const queue = new Queue([beginRoot]);
|
|
1176
1172
|
while (queue.size > 0) {
|
|
1177
1173
|
const levelSize = queue.size;
|
|
1178
1174
|
for (let i = 0; i < levelSize; i++) {
|
|
@@ -1225,7 +1221,7 @@ class BinaryTree {
|
|
|
1225
1221
|
const levelsNodes = [];
|
|
1226
1222
|
if (!beginRoot)
|
|
1227
1223
|
return levelsNodes;
|
|
1228
|
-
if (iterationType ===
|
|
1224
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
1229
1225
|
const _recursive = (node, level) => {
|
|
1230
1226
|
if (!levelsNodes[level])
|
|
1231
1227
|
levelsNodes[level] = [];
|
|
@@ -1432,7 +1428,7 @@ class BinaryTree {
|
|
|
1432
1428
|
if (!node) {
|
|
1433
1429
|
return;
|
|
1434
1430
|
}
|
|
1435
|
-
if (this.iterationType ===
|
|
1431
|
+
if (this.iterationType === IterationType.ITERATIVE) {
|
|
1436
1432
|
const stack = [];
|
|
1437
1433
|
let current = node;
|
|
1438
1434
|
while (current || stack.length > 0) {
|
|
@@ -1594,4 +1590,3 @@ class BinaryTree {
|
|
|
1594
1590
|
this._root = v;
|
|
1595
1591
|
}
|
|
1596
1592
|
}
|
|
1597
|
-
exports.BinaryTree = BinaryTree;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const binary_tree_1 = require("./binary-tree");
|
|
6
|
-
const queue_1 = require("../queue");
|
|
7
|
-
class BSTNode extends binary_tree_1.BinaryTreeNode {
|
|
1
|
+
import { CP, IterationType } from '../../types';
|
|
2
|
+
import { BinaryTree, BinaryTreeNode } from './binary-tree';
|
|
3
|
+
import { Queue } from '../queue';
|
|
4
|
+
export class BSTNode extends BinaryTreeNode {
|
|
8
5
|
parent;
|
|
9
6
|
constructor(key, value) {
|
|
10
7
|
super(key, value);
|
|
@@ -47,8 +44,7 @@ class BSTNode extends binary_tree_1.BinaryTreeNode {
|
|
|
47
44
|
this._right = v;
|
|
48
45
|
}
|
|
49
46
|
}
|
|
50
|
-
|
|
51
|
-
class BST extends binary_tree_1.BinaryTree {
|
|
47
|
+
export class BST extends BinaryTree {
|
|
52
48
|
/**
|
|
53
49
|
* The constructor function initializes a binary search tree with an optional comparator function.
|
|
54
50
|
* @param {BSTOptions} [options] - An optional object that contains additional configuration options
|
|
@@ -123,7 +119,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
123
119
|
let traversing = true;
|
|
124
120
|
while (traversing) {
|
|
125
121
|
if (cur !== undefined && newNode !== undefined) {
|
|
126
|
-
if (this._compare(cur.key, newNode.key) ===
|
|
122
|
+
if (this._compare(cur.key, newNode.key) === CP.eq) {
|
|
127
123
|
if (newNode) {
|
|
128
124
|
cur.value = newNode.value;
|
|
129
125
|
}
|
|
@@ -131,7 +127,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
131
127
|
traversing = false;
|
|
132
128
|
inserted = cur;
|
|
133
129
|
}
|
|
134
|
-
else if (this._compare(cur.key, newNode.key) ===
|
|
130
|
+
else if (this._compare(cur.key, newNode.key) === CP.gt) {
|
|
135
131
|
// Traverse left of the node
|
|
136
132
|
if (cur.left === undefined) {
|
|
137
133
|
if (newNode) {
|
|
@@ -149,7 +145,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
149
145
|
cur = cur.left;
|
|
150
146
|
}
|
|
151
147
|
}
|
|
152
|
-
else if (this._compare(cur.key, newNode.key) ===
|
|
148
|
+
else if (this._compare(cur.key, newNode.key) === CP.lt) {
|
|
153
149
|
// Traverse right of the node
|
|
154
150
|
if (cur.right === undefined) {
|
|
155
151
|
if (newNode) {
|
|
@@ -260,7 +256,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
260
256
|
}
|
|
261
257
|
}
|
|
262
258
|
};
|
|
263
|
-
if (iterationType ===
|
|
259
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
264
260
|
_dfs(sortedKeysOrNodes, sortedData);
|
|
265
261
|
}
|
|
266
262
|
else {
|
|
@@ -288,9 +284,9 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
288
284
|
* rightmost node otherwise. If no node is found, it returns 0.
|
|
289
285
|
*/
|
|
290
286
|
lastKey(beginRoot = this.root, iterationType = this.iterationType) {
|
|
291
|
-
if (this._compare(0, 1) ===
|
|
287
|
+
if (this._compare(0, 1) === CP.lt)
|
|
292
288
|
return this.getRightMost(beginRoot, iterationType)?.key ?? 0;
|
|
293
|
-
else if (this._compare(0, 1) ===
|
|
289
|
+
else if (this._compare(0, 1) === CP.gt)
|
|
294
290
|
return this.getLeftMost(beginRoot, iterationType)?.key ?? 0;
|
|
295
291
|
else
|
|
296
292
|
return this.getRightMost(beginRoot, iterationType)?.key ?? 0;
|
|
@@ -313,32 +309,32 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
313
309
|
* @returns The function `getNodeByKey` returns a node (`N`) if a node with the specified key is
|
|
314
310
|
* found in the binary tree. If no node is found, it returns `undefined`.
|
|
315
311
|
*/
|
|
316
|
-
getNodeByKey(key, iterationType =
|
|
312
|
+
getNodeByKey(key, iterationType = IterationType.ITERATIVE) {
|
|
317
313
|
if (!this.root)
|
|
318
314
|
return undefined;
|
|
319
|
-
if (iterationType ===
|
|
315
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
320
316
|
const _dfs = (cur) => {
|
|
321
317
|
if (cur.key === key)
|
|
322
318
|
return cur;
|
|
323
319
|
if (!cur.left && !cur.right)
|
|
324
320
|
return;
|
|
325
|
-
if (this._compare(cur.key, key) ===
|
|
321
|
+
if (this._compare(cur.key, key) === CP.gt && cur.left)
|
|
326
322
|
return _dfs(cur.left);
|
|
327
|
-
if (this._compare(cur.key, key) ===
|
|
323
|
+
if (this._compare(cur.key, key) === CP.lt && cur.right)
|
|
328
324
|
return _dfs(cur.right);
|
|
329
325
|
};
|
|
330
326
|
return _dfs(this.root);
|
|
331
327
|
}
|
|
332
328
|
else {
|
|
333
|
-
const queue = new
|
|
329
|
+
const queue = new Queue([this.root]);
|
|
334
330
|
while (queue.size > 0) {
|
|
335
331
|
const cur = queue.shift();
|
|
336
332
|
if (cur) {
|
|
337
|
-
if (this._compare(cur.key, key) ===
|
|
333
|
+
if (this._compare(cur.key, key) === CP.eq)
|
|
338
334
|
return cur;
|
|
339
|
-
if (this._compare(cur.key, key) ===
|
|
335
|
+
if (this._compare(cur.key, key) === CP.gt)
|
|
340
336
|
cur.left && queue.push(cur.left);
|
|
341
|
-
if (this._compare(cur.key, key) ===
|
|
337
|
+
if (this._compare(cur.key, key) === CP.lt)
|
|
342
338
|
cur.right && queue.push(cur.right);
|
|
343
339
|
}
|
|
344
340
|
}
|
|
@@ -353,7 +349,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
353
349
|
* type of iteration to be performed. It has a default value of `IterationType.ITERATIVE`.
|
|
354
350
|
* @returns either a node object (N) or undefined.
|
|
355
351
|
*/
|
|
356
|
-
ensureNotKey(key, iterationType =
|
|
352
|
+
ensureNotKey(key, iterationType = IterationType.ITERATIVE) {
|
|
357
353
|
return this.isNodeKey(key) ? this.getNodeByKey(key, iterationType) : key;
|
|
358
354
|
}
|
|
359
355
|
/**
|
|
@@ -388,7 +384,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
388
384
|
if (!beginRoot)
|
|
389
385
|
return [];
|
|
390
386
|
const ans = [];
|
|
391
|
-
if (iterationType ===
|
|
387
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
392
388
|
const _traverse = (cur) => {
|
|
393
389
|
const callbackResult = callback(cur);
|
|
394
390
|
if (callbackResult === identifier) {
|
|
@@ -400,9 +396,9 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
400
396
|
return;
|
|
401
397
|
// TODO potential bug
|
|
402
398
|
if (callback === this._defaultOneParamCallback) {
|
|
403
|
-
if (this._compare(cur.key, identifier) ===
|
|
399
|
+
if (this._compare(cur.key, identifier) === CP.gt)
|
|
404
400
|
cur.left && _traverse(cur.left);
|
|
405
|
-
if (this._compare(cur.key, identifier) ===
|
|
401
|
+
if (this._compare(cur.key, identifier) === CP.lt)
|
|
406
402
|
cur.right && _traverse(cur.right);
|
|
407
403
|
}
|
|
408
404
|
else {
|
|
@@ -413,7 +409,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
413
409
|
_traverse(beginRoot);
|
|
414
410
|
}
|
|
415
411
|
else {
|
|
416
|
-
const queue = new
|
|
412
|
+
const queue = new Queue([beginRoot]);
|
|
417
413
|
while (queue.size > 0) {
|
|
418
414
|
const cur = queue.shift();
|
|
419
415
|
if (cur) {
|
|
@@ -425,9 +421,9 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
425
421
|
}
|
|
426
422
|
// TODO potential bug
|
|
427
423
|
if (callback === this._defaultOneParamCallback) {
|
|
428
|
-
if (this._compare(cur.key, identifier) ===
|
|
424
|
+
if (this._compare(cur.key, identifier) === CP.gt)
|
|
429
425
|
cur.left && queue.push(cur.left);
|
|
430
|
-
if (this._compare(cur.key, identifier) ===
|
|
426
|
+
if (this._compare(cur.key, identifier) === CP.lt)
|
|
431
427
|
cur.right && queue.push(cur.right);
|
|
432
428
|
}
|
|
433
429
|
else {
|
|
@@ -464,7 +460,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
464
460
|
* @returns The function `lesserOrGreaterTraverse` returns an array of values of type
|
|
465
461
|
* `ReturnType<C>`, which is the return type of the callback function passed as an argument.
|
|
466
462
|
*/
|
|
467
|
-
lesserOrGreaterTraverse(callback = this._defaultOneParamCallback, lesserOrGreater =
|
|
463
|
+
lesserOrGreaterTraverse(callback = this._defaultOneParamCallback, lesserOrGreater = CP.lt, targetNode = this.root, iterationType = this.iterationType) {
|
|
468
464
|
targetNode = this.ensureNotKey(targetNode);
|
|
469
465
|
const ans = [];
|
|
470
466
|
if (!targetNode)
|
|
@@ -472,7 +468,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
472
468
|
if (!this.root)
|
|
473
469
|
return ans;
|
|
474
470
|
const targetKey = targetNode.key;
|
|
475
|
-
if (iterationType ===
|
|
471
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
476
472
|
const _traverse = (cur) => {
|
|
477
473
|
const compared = this._compare(cur.key, targetKey);
|
|
478
474
|
if (compared === lesserOrGreater)
|
|
@@ -488,7 +484,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
488
484
|
return ans;
|
|
489
485
|
}
|
|
490
486
|
else {
|
|
491
|
-
const queue = new
|
|
487
|
+
const queue = new Queue([this.root]);
|
|
492
488
|
while (queue.size > 0) {
|
|
493
489
|
const cur = queue.shift();
|
|
494
490
|
if (cur) {
|
|
@@ -533,7 +529,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
533
529
|
this.clear();
|
|
534
530
|
if (sorted.length < 1)
|
|
535
531
|
return false;
|
|
536
|
-
if (iterationType ===
|
|
532
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
537
533
|
const buildBalanceBST = (l, r) => {
|
|
538
534
|
if (l > r)
|
|
539
535
|
return;
|
|
@@ -582,7 +578,7 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
582
578
|
if (!this.root)
|
|
583
579
|
return true;
|
|
584
580
|
let balanced = true;
|
|
585
|
-
if (iterationType ===
|
|
581
|
+
if (iterationType === IterationType.RECURSIVE) {
|
|
586
582
|
const _height = (cur) => {
|
|
587
583
|
if (!cur)
|
|
588
584
|
return 0;
|
|
@@ -641,11 +637,10 @@ class BST extends binary_tree_1.BinaryTree {
|
|
|
641
637
|
_compare(a, b) {
|
|
642
638
|
const compared = this._comparator(a, b);
|
|
643
639
|
if (compared > 0)
|
|
644
|
-
return
|
|
640
|
+
return CP.gt;
|
|
645
641
|
else if (compared < 0)
|
|
646
|
-
return
|
|
642
|
+
return CP.lt;
|
|
647
643
|
else
|
|
648
|
-
return
|
|
644
|
+
return CP.eq;
|
|
649
645
|
}
|
|
650
646
|
}
|
|
651
|
-
exports.BST = BST;
|