data-structure-typed 1.37.4 → 1.37.6
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/data-structures/binary-tree/binary-indexed-tree.d.ts +141 -43
- package/dist/data-structures/binary-tree/binary-indexed-tree.js +230 -42
- package/dist/data-structures/binary-tree/binary-indexed-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/binary-tree.js.map +1 -1
- package/dist/data-structures/binary-tree/bst.js.map +1 -1
- package/{lib/types/data-structures → dist/types/data-structures/binary-tree}/avl-tree.d.ts +1 -1
- package/dist/types/data-structures/binary-tree/avl-tree.js.map +1 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.js +3 -0
- package/dist/types/data-structures/binary-tree/binary-indexed-tree.js.map +1 -0
- package/dist/types/data-structures/{binary-tree.d.ts → binary-tree/binary-tree.d.ts} +1 -5
- package/dist/types/data-structures/binary-tree/binary-tree.js.map +1 -0
- package/dist/types/data-structures/{bst.d.ts → binary-tree/bst.d.ts} +1 -1
- package/dist/types/data-structures/binary-tree/bst.js.map +1 -0
- package/dist/types/data-structures/binary-tree/index.d.ts +6 -0
- package/dist/types/data-structures/binary-tree/index.js +23 -0
- package/dist/types/data-structures/binary-tree/index.js.map +1 -0
- package/dist/types/data-structures/{rb-tree.d.ts → binary-tree/rb-tree.d.ts} +1 -1
- package/dist/types/data-structures/binary-tree/rb-tree.js.map +1 -0
- package/dist/types/data-structures/binary-tree/segment-tree.js.map +1 -0
- package/dist/types/data-structures/{tree-multiset.d.ts → binary-tree/tree-multiset.d.ts} +1 -1
- package/dist/types/data-structures/binary-tree/tree-multiset.js.map +1 -0
- package/dist/types/data-structures/graph/abstract-graph.js.map +1 -0
- package/dist/types/data-structures/graph/directed-graph.js.map +1 -0
- package/dist/types/data-structures/graph/index.d.ts +3 -0
- package/dist/types/data-structures/graph/index.js +20 -0
- package/dist/types/data-structures/graph/index.js.map +1 -0
- package/dist/types/data-structures/graph/map-graph.js.map +1 -0
- package/dist/types/data-structures/graph/undirected-graph.js +3 -0
- package/dist/types/data-structures/graph/undirected-graph.js.map +1 -0
- package/dist/types/data-structures/hash/coordinate-map.js +3 -0
- package/dist/types/data-structures/hash/coordinate-map.js.map +1 -0
- package/dist/types/data-structures/hash/coordinate-set.js +3 -0
- package/dist/types/data-structures/hash/coordinate-set.js.map +1 -0
- package/dist/types/data-structures/hash/hash-map.js +3 -0
- package/dist/types/data-structures/hash/hash-map.js.map +1 -0
- package/dist/types/data-structures/hash/hash-table.js +3 -0
- package/dist/types/data-structures/hash/hash-table.js.map +1 -0
- package/dist/types/data-structures/hash/index.js +3 -0
- package/dist/types/data-structures/hash/index.js.map +1 -0
- package/dist/types/data-structures/hash/tree-map.js +3 -0
- package/dist/types/data-structures/hash/tree-map.js.map +1 -0
- package/dist/types/data-structures/hash/tree-set.js +3 -0
- package/dist/types/data-structures/hash/tree-set.js.map +1 -0
- package/dist/types/data-structures/heap/heap.js.map +1 -0
- package/dist/types/data-structures/heap/index.d.ts +1 -0
- package/dist/types/data-structures/heap/index.js +18 -0
- package/dist/types/data-structures/heap/index.js.map +1 -0
- package/dist/types/data-structures/heap/max-heap.js +3 -0
- package/dist/types/data-structures/heap/max-heap.js.map +1 -0
- package/dist/types/data-structures/heap/min-heap.js +3 -0
- package/dist/types/data-structures/heap/min-heap.js.map +1 -0
- package/dist/types/data-structures/index.d.ts +8 -13
- package/dist/types/data-structures/index.js +8 -11
- package/dist/types/data-structures/index.js.map +1 -1
- package/dist/types/data-structures/linked-list/doubly-linked-list.js.map +1 -0
- package/dist/types/data-structures/linked-list/index.d.ts +2 -0
- package/dist/types/data-structures/linked-list/index.js +19 -0
- package/dist/types/data-structures/linked-list/index.js.map +1 -0
- package/dist/types/data-structures/linked-list/singly-linked-list.js.map +1 -0
- package/dist/types/data-structures/linked-list/skip-linked-list.js +3 -0
- package/dist/types/data-structures/linked-list/skip-linked-list.js.map +1 -0
- package/dist/types/data-structures/matrix/index.d.ts +1 -0
- package/dist/types/data-structures/matrix/index.js +18 -0
- package/dist/types/data-structures/matrix/index.js.map +1 -0
- package/dist/types/data-structures/matrix/matrix.js +3 -0
- package/dist/types/data-structures/matrix/matrix.js.map +1 -0
- package/dist/types/data-structures/matrix/matrix2d.js +3 -0
- package/dist/types/data-structures/matrix/matrix2d.js.map +1 -0
- package/dist/types/data-structures/matrix/navigator.js.map +1 -0
- package/dist/types/data-structures/matrix/vector2d.js +3 -0
- package/dist/types/data-structures/matrix/vector2d.js.map +1 -0
- package/dist/types/data-structures/priority-queue/index.d.ts +3 -0
- package/dist/types/data-structures/priority-queue/index.js +20 -0
- package/dist/types/data-structures/priority-queue/index.js.map +1 -0
- package/dist/types/data-structures/priority-queue/max-priority-queue.js +3 -0
- package/dist/types/data-structures/priority-queue/max-priority-queue.js.map +1 -0
- package/dist/types/data-structures/priority-queue/min-priority-queue.js +3 -0
- package/dist/types/data-structures/priority-queue/min-priority-queue.js.map +1 -0
- package/dist/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
- package/dist/types/data-structures/priority-queue/priority-queue.js +3 -0
- package/dist/types/data-structures/priority-queue/priority-queue.js.map +1 -0
- package/dist/types/data-structures/queue/deque.d.ts +1 -0
- package/dist/types/data-structures/queue/deque.js +3 -0
- package/dist/types/data-structures/queue/deque.js.map +1 -0
- package/dist/types/data-structures/queue/index.d.ts +2 -0
- package/dist/types/data-structures/queue/index.js +19 -0
- package/dist/types/data-structures/queue/index.js.map +1 -0
- package/dist/types/data-structures/queue/queue.d.ts +1 -0
- package/dist/types/data-structures/queue/queue.js +3 -0
- package/dist/types/data-structures/queue/queue.js.map +1 -0
- package/dist/types/data-structures/stack/index.d.ts +1 -0
- package/dist/types/data-structures/stack/index.js +18 -0
- package/dist/types/data-structures/stack/index.js.map +1 -0
- package/dist/types/data-structures/stack/stack.d.ts +1 -0
- package/dist/types/data-structures/stack/stack.js +3 -0
- package/dist/types/data-structures/stack/stack.js.map +1 -0
- package/dist/types/data-structures/tree/index.d.ts +1 -0
- package/dist/types/data-structures/tree/index.js +18 -0
- package/dist/types/data-structures/tree/index.js.map +1 -0
- package/dist/types/data-structures/tree/tree.d.ts +1 -0
- package/dist/types/data-structures/{hash.js → tree/tree.js} +1 -1
- package/dist/types/data-structures/tree/tree.js.map +1 -0
- package/dist/types/data-structures/trie/index.d.ts +1 -0
- package/dist/types/data-structures/trie/index.js +18 -0
- package/dist/types/data-structures/trie/index.js.map +1 -0
- package/dist/types/data-structures/trie/trie.d.ts +1 -0
- package/dist/types/data-structures/trie/trie.js +3 -0
- package/dist/types/data-structures/trie/trie.js.map +1 -0
- package/dist/types/helpers.d.ts +2 -0
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.js +8 -1
- package/dist/utils/utils.js.map +1 -1
- package/lib/data-structures/binary-tree/binary-indexed-tree.d.ts +141 -43
- package/lib/data-structures/binary-tree/binary-indexed-tree.js +230 -42
- package/{dist/types/data-structures → lib/types/data-structures/binary-tree}/avl-tree.d.ts +1 -1
- package/lib/types/data-structures/binary-tree/avl-tree.js +1 -0
- package/lib/types/data-structures/binary-tree/binary-indexed-tree.d.ts +1 -0
- package/lib/types/data-structures/binary-tree/binary-indexed-tree.js +1 -0
- package/lib/types/data-structures/{binary-tree.d.ts → binary-tree/binary-tree.d.ts} +1 -5
- package/lib/types/data-structures/{bst.d.ts → binary-tree/bst.d.ts} +1 -1
- package/lib/types/data-structures/binary-tree/index.d.ts +6 -0
- package/lib/types/data-structures/binary-tree/index.js +6 -0
- package/lib/types/data-structures/{rb-tree.d.ts → binary-tree/rb-tree.d.ts} +1 -1
- package/lib/types/data-structures/binary-tree/segment-tree.js +1 -0
- package/lib/types/data-structures/{tree-multiset.d.ts → binary-tree/tree-multiset.d.ts} +1 -1
- package/lib/types/data-structures/binary-tree/tree-multiset.js +1 -0
- package/lib/types/data-structures/graph/abstract-graph.js +1 -0
- package/lib/types/data-structures/graph/index.d.ts +3 -0
- package/lib/types/data-structures/graph/index.js +3 -0
- package/lib/types/data-structures/graph/map-graph.js +1 -0
- package/lib/types/data-structures/graph/undirected-graph.d.ts +1 -0
- package/lib/types/data-structures/graph/undirected-graph.js +1 -0
- package/lib/types/data-structures/hash/coordinate-map.d.ts +1 -0
- package/lib/types/data-structures/hash/coordinate-map.js +1 -0
- package/lib/types/data-structures/hash/coordinate-set.d.ts +1 -0
- package/lib/types/data-structures/hash/coordinate-set.js +1 -0
- package/lib/types/data-structures/hash/hash-map.d.ts +1 -0
- package/lib/types/data-structures/hash/hash-map.js +1 -0
- package/lib/types/data-structures/hash/hash-table.d.ts +1 -0
- package/lib/types/data-structures/hash/hash-table.js +1 -0
- package/lib/types/data-structures/hash/index.js +1 -0
- package/lib/types/data-structures/hash/tree-map.d.ts +1 -0
- package/lib/types/data-structures/hash/tree-map.js +1 -0
- package/lib/types/data-structures/hash/tree-set.d.ts +1 -0
- package/lib/types/data-structures/hash/tree-set.js +1 -0
- package/lib/types/data-structures/heap/heap.d.ts +1 -0
- package/lib/types/data-structures/heap/heap.js +1 -0
- package/lib/types/data-structures/heap/index.d.ts +1 -0
- package/lib/types/data-structures/heap/index.js +1 -0
- package/lib/types/data-structures/heap/max-heap.d.ts +1 -0
- package/lib/types/data-structures/heap/max-heap.js +1 -0
- package/lib/types/data-structures/heap/min-heap.d.ts +1 -0
- package/lib/types/data-structures/heap/min-heap.js +1 -0
- package/lib/types/data-structures/index.d.ts +8 -13
- package/lib/types/data-structures/index.js +8 -11
- package/lib/types/data-structures/linked-list/doubly-linked-list.d.ts +1 -0
- package/lib/types/data-structures/linked-list/doubly-linked-list.js +1 -0
- package/lib/types/data-structures/linked-list/index.d.ts +2 -0
- package/lib/types/data-structures/linked-list/index.js +2 -0
- package/lib/types/data-structures/linked-list/singly-linked-list.d.ts +1 -0
- package/lib/types/data-structures/linked-list/singly-linked-list.js +1 -0
- package/lib/types/data-structures/linked-list/skip-linked-list.d.ts +1 -0
- package/lib/types/data-structures/linked-list/skip-linked-list.js +1 -0
- package/lib/types/data-structures/matrix/index.d.ts +1 -0
- package/lib/types/data-structures/matrix/index.js +1 -0
- package/lib/types/data-structures/matrix/matrix.d.ts +1 -0
- package/lib/types/data-structures/matrix/matrix.js +1 -0
- package/lib/types/data-structures/matrix/matrix2d.d.ts +1 -0
- package/lib/types/data-structures/matrix/matrix2d.js +1 -0
- package/lib/types/data-structures/matrix/navigator.js +1 -0
- package/lib/types/data-structures/matrix/vector2d.d.ts +1 -0
- package/lib/types/data-structures/matrix/vector2d.js +1 -0
- package/lib/types/data-structures/priority-queue/index.d.ts +3 -0
- package/lib/types/data-structures/priority-queue/index.js +3 -0
- package/lib/types/data-structures/priority-queue/max-priority-queue.d.ts +1 -0
- package/lib/types/data-structures/priority-queue/max-priority-queue.js +1 -0
- package/lib/types/data-structures/priority-queue/min-priority-queue.d.ts +1 -0
- package/lib/types/data-structures/priority-queue/min-priority-queue.js +1 -0
- package/lib/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
- package/lib/types/data-structures/priority-queue/priority-queue.js +1 -0
- package/lib/types/data-structures/queue/deque.d.ts +1 -0
- package/lib/types/data-structures/queue/deque.js +1 -0
- package/lib/types/data-structures/queue/index.d.ts +2 -0
- package/lib/types/data-structures/queue/index.js +2 -0
- package/lib/types/data-structures/queue/queue.d.ts +1 -0
- package/lib/types/data-structures/queue/queue.js +1 -0
- package/lib/types/data-structures/stack/index.d.ts +1 -0
- package/lib/types/data-structures/stack/index.js +1 -0
- package/lib/types/data-structures/stack/stack.d.ts +1 -0
- package/lib/types/data-structures/stack/stack.js +1 -0
- package/lib/types/data-structures/tree/index.d.ts +1 -0
- package/lib/types/data-structures/tree/index.js +1 -0
- package/lib/types/data-structures/tree/tree.d.ts +1 -0
- package/lib/types/data-structures/tree/tree.js +1 -0
- package/lib/types/data-structures/trie/index.d.ts +1 -0
- package/lib/types/data-structures/trie/index.js +1 -0
- package/lib/types/data-structures/trie/trie.d.ts +1 -0
- package/lib/types/data-structures/trie/trie.js +1 -0
- package/lib/types/helpers.d.ts +2 -0
- package/lib/utils/utils.d.ts +1 -0
- package/lib/utils/utils.js +6 -0
- package/package.json +14 -11
- package/src/data-structures/binary-tree/binary-indexed-tree.ts +264 -42
- package/src/data-structures/binary-tree/binary-tree.ts +2 -3
- package/src/data-structures/binary-tree/bst.ts +12 -3
- package/src/types/data-structures/{avl-tree.ts → binary-tree/avl-tree.ts} +1 -1
- package/src/types/data-structures/binary-tree/binary-indexed-tree.ts +1 -0
- package/src/types/data-structures/{binary-tree.ts → binary-tree/binary-tree.ts} +1 -13
- package/src/types/data-structures/{bst.ts → binary-tree/bst.ts} +1 -1
- package/src/types/data-structures/binary-tree/index.ts +6 -0
- package/src/types/data-structures/{rb-tree.ts → binary-tree/rb-tree.ts} +2 -2
- package/src/types/data-structures/{tree-multiset.ts → binary-tree/tree-multiset.ts} +1 -1
- package/src/types/data-structures/graph/index.ts +3 -0
- package/src/types/data-structures/graph/undirected-graph.ts +1 -0
- package/src/types/data-structures/hash/coordinate-map.ts +1 -0
- package/src/types/data-structures/hash/coordinate-set.ts +1 -0
- package/src/types/data-structures/hash/hash-map.ts +1 -0
- package/src/types/data-structures/hash/hash-table.ts +1 -0
- package/src/types/data-structures/hash/tree-map.ts +1 -0
- package/src/types/data-structures/hash/tree-set.ts +1 -0
- package/src/types/data-structures/heap/heap.ts +1 -0
- package/src/types/data-structures/heap/index.ts +1 -0
- package/src/types/data-structures/heap/max-heap.ts +1 -0
- package/src/types/data-structures/heap/min-heap.ts +1 -0
- package/src/types/data-structures/index.ts +8 -14
- package/src/types/data-structures/linked-list/doubly-linked-list.ts +1 -0
- package/src/types/data-structures/linked-list/index.ts +2 -0
- package/src/types/data-structures/linked-list/singly-linked-list.ts +1 -0
- package/src/types/data-structures/linked-list/skip-linked-list.ts +1 -0
- package/src/types/data-structures/matrix/index.ts +1 -0
- package/src/types/data-structures/matrix/matrix.ts +1 -0
- package/src/types/data-structures/matrix/matrix2d.ts +1 -0
- package/src/types/data-structures/matrix/vector2d.ts +1 -0
- package/src/types/data-structures/priority-queue/index.ts +3 -0
- package/src/types/data-structures/priority-queue/max-priority-queue.ts +1 -0
- package/src/types/data-structures/priority-queue/min-priority-queue.ts +1 -0
- package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
- package/src/types/data-structures/queue/deque.ts +1 -0
- package/src/types/data-structures/queue/index.ts +2 -0
- package/src/types/data-structures/queue/queue.ts +1 -0
- package/src/types/data-structures/stack/index.ts +1 -0
- package/src/types/data-structures/stack/stack.ts +1 -0
- package/src/types/data-structures/tree/index.ts +1 -0
- package/src/types/data-structures/tree/tree.ts +1 -0
- package/src/types/data-structures/trie/index.ts +1 -0
- package/src/types/data-structures/trie/trie.ts +1 -0
- package/src/types/helpers.ts +4 -1
- package/src/utils/utils.ts +7 -0
- package/test/config.js +4 -0
- package/test/types/index.js +29 -0
- package/test/types/utils/big-o.js +2 -0
- package/test/types/utils/index.js +29 -0
- package/test/unit/data-structures/binary-tree/binary-index-tree.test.ts +284 -0
- package/test/utils/big-o.js +212 -0
- package/test/utils/index.js +30 -0
- package/test/utils/number.js +14 -0
- package/umd/bundle.min.js +1 -1
- package/umd/bundle.min.js.map +1 -1
- package/dist/types/data-structures/abstract-graph.js.map +0 -1
- package/dist/types/data-structures/avl-tree.js.map +0 -1
- package/dist/types/data-structures/binary-tree.js.map +0 -1
- package/dist/types/data-structures/bst.js.map +0 -1
- package/dist/types/data-structures/directed-graph.js.map +0 -1
- package/dist/types/data-structures/doubly-linked-list.js.map +0 -1
- package/dist/types/data-structures/hash.js.map +0 -1
- package/dist/types/data-structures/heap.js.map +0 -1
- package/dist/types/data-structures/map-graph.js.map +0 -1
- package/dist/types/data-structures/navigator.js.map +0 -1
- package/dist/types/data-structures/rb-tree.js.map +0 -1
- package/dist/types/data-structures/segment-tree.js.map +0 -1
- package/dist/types/data-structures/singly-linked-list.js.map +0 -1
- package/dist/types/data-structures/tree-multiset.js.map +0 -1
- /package/dist/types/data-structures/{avl-tree.js → binary-tree/avl-tree.js} +0 -0
- /package/dist/types/data-structures/{doubly-linked-list.d.ts → binary-tree/binary-indexed-tree.d.ts} +0 -0
- /package/dist/types/data-structures/{binary-tree.js → binary-tree/binary-tree.js} +0 -0
- /package/dist/types/data-structures/{bst.js → binary-tree/bst.js} +0 -0
- /package/dist/types/data-structures/{rb-tree.js → binary-tree/rb-tree.js} +0 -0
- /package/dist/types/data-structures/{segment-tree.d.ts → binary-tree/segment-tree.d.ts} +0 -0
- /package/dist/types/data-structures/{segment-tree.js → binary-tree/segment-tree.js} +0 -0
- /package/dist/types/data-structures/{tree-multiset.js → binary-tree/tree-multiset.js} +0 -0
- /package/dist/types/data-structures/{abstract-graph.d.ts → graph/abstract-graph.d.ts} +0 -0
- /package/dist/types/data-structures/{abstract-graph.js → graph/abstract-graph.js} +0 -0
- /package/dist/types/data-structures/{directed-graph.d.ts → graph/directed-graph.d.ts} +0 -0
- /package/dist/types/data-structures/{directed-graph.js → graph/directed-graph.js} +0 -0
- /package/dist/types/data-structures/{map-graph.d.ts → graph/map-graph.d.ts} +0 -0
- /package/dist/types/data-structures/{map-graph.js → graph/map-graph.js} +0 -0
- /package/dist/types/data-structures/{heap.d.ts → graph/undirected-graph.d.ts} +0 -0
- /package/dist/types/data-structures/{singly-linked-list.d.ts → hash/coordinate-map.d.ts} +0 -0
- /package/{lib/types/data-structures/abstract-graph.js → dist/types/data-structures/hash/coordinate-set.d.ts} +0 -0
- /package/{lib/types/data-structures/avl-tree.js → dist/types/data-structures/hash/hash-map.d.ts} +0 -0
- /package/{lib/types/data-structures/doubly-linked-list.d.ts → dist/types/data-structures/hash/hash-table.d.ts} +0 -0
- /package/dist/types/data-structures/{hash.d.ts → hash/index.d.ts} +0 -0
- /package/{lib/types/data-structures/doubly-linked-list.js → dist/types/data-structures/hash/tree-map.d.ts} +0 -0
- /package/{lib/types/data-structures/hash.js → dist/types/data-structures/hash/tree-set.d.ts} +0 -0
- /package/{lib/types/data-structures → dist/types/data-structures/heap}/heap.d.ts +0 -0
- /package/dist/types/data-structures/{heap.js → heap/heap.js} +0 -0
- /package/{lib/types/data-structures/heap.js → dist/types/data-structures/heap/max-heap.d.ts} +0 -0
- /package/{lib/types/data-structures/map-graph.js → dist/types/data-structures/heap/min-heap.d.ts} +0 -0
- /package/{lib/types/data-structures/navigator.js → dist/types/data-structures/linked-list/doubly-linked-list.d.ts} +0 -0
- /package/dist/types/data-structures/{doubly-linked-list.js → linked-list/doubly-linked-list.js} +0 -0
- /package/{lib/types/data-structures → dist/types/data-structures/linked-list}/singly-linked-list.d.ts +0 -0
- /package/dist/types/data-structures/{singly-linked-list.js → linked-list/singly-linked-list.js} +0 -0
- /package/{lib/types/data-structures/segment-tree.js → dist/types/data-structures/linked-list/skip-linked-list.d.ts} +0 -0
- /package/{lib/types/data-structures/singly-linked-list.js → dist/types/data-structures/matrix/matrix.d.ts} +0 -0
- /package/{lib/types/data-structures/tree-multiset.js → dist/types/data-structures/matrix/matrix2d.d.ts} +0 -0
- /package/dist/types/data-structures/{navigator.d.ts → matrix/navigator.d.ts} +0 -0
- /package/dist/types/data-structures/{navigator.js → matrix/navigator.js} +0 -0
- /package/{src/types/data-structures/doubly-linked-list.ts → dist/types/data-structures/matrix/vector2d.d.ts} +0 -0
- /package/{src/types/data-structures/heap.ts → dist/types/data-structures/priority-queue/max-priority-queue.d.ts} +0 -0
- /package/{src/types/data-structures/singly-linked-list.ts → dist/types/data-structures/priority-queue/min-priority-queue.d.ts} +0 -0
- /package/lib/types/data-structures/{binary-tree.js → binary-tree/binary-tree.js} +0 -0
- /package/lib/types/data-structures/{bst.js → binary-tree/bst.js} +0 -0
- /package/lib/types/data-structures/{rb-tree.js → binary-tree/rb-tree.js} +0 -0
- /package/lib/types/data-structures/{segment-tree.d.ts → binary-tree/segment-tree.d.ts} +0 -0
- /package/lib/types/data-structures/{abstract-graph.d.ts → graph/abstract-graph.d.ts} +0 -0
- /package/lib/types/data-structures/{directed-graph.d.ts → graph/directed-graph.d.ts} +0 -0
- /package/lib/types/data-structures/{directed-graph.js → graph/directed-graph.js} +0 -0
- /package/lib/types/data-structures/{map-graph.d.ts → graph/map-graph.d.ts} +0 -0
- /package/lib/types/data-structures/{hash.d.ts → hash/index.d.ts} +0 -0
- /package/lib/types/data-structures/{navigator.d.ts → matrix/navigator.d.ts} +0 -0
- /package/src/types/data-structures/{segment-tree.ts → binary-tree/segment-tree.ts} +0 -0
- /package/src/types/data-structures/{abstract-graph.ts → graph/abstract-graph.ts} +0 -0
- /package/src/types/data-structures/{directed-graph.ts → graph/directed-graph.ts} +0 -0
- /package/src/types/data-structures/{map-graph.ts → graph/map-graph.ts} +0 -0
- /package/src/types/data-structures/{hash.ts → hash/index.ts} +0 -0
- /package/src/types/data-structures/{navigator.ts → matrix/navigator.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
- [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
|
|
9
9
|
- [`auto-changelog`](https://github.com/CookPete/auto-changelog)
|
|
10
10
|
|
|
11
|
-
## [v1.37.
|
|
11
|
+
## [v1.37.3](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
|
|
12
12
|
|
|
13
13
|
### Changes
|
|
14
14
|
|
|
@@ -1,46 +1,144 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* data-structure-typed
|
|
3
|
-
*
|
|
4
|
-
* @author Tyler Zeng
|
|
5
|
-
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
6
|
-
* @license MIT License
|
|
7
|
-
*/
|
|
8
1
|
export declare class BinaryIndexedTree {
|
|
2
|
+
protected readonly _freq: number;
|
|
3
|
+
protected readonly _max: number;
|
|
9
4
|
/**
|
|
10
|
-
* The constructor initializes
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*/
|
|
15
|
-
constructor(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
*
|
|
32
|
-
* @
|
|
33
|
-
*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* @param {number}
|
|
41
|
-
* the
|
|
42
|
-
* @
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
5
|
+
* The constructor initializes the properties of an object, including default frequency, maximum
|
|
6
|
+
* value, a freqMap data structure, the most significant bit, and the count of negative frequencies.
|
|
7
|
+
* @param - - `frequency`: The default frequency value. It is optional and has a default
|
|
8
|
+
* value of 0.
|
|
9
|
+
*/
|
|
10
|
+
constructor({ frequency, max }: {
|
|
11
|
+
frequency?: number;
|
|
12
|
+
max: number;
|
|
13
|
+
});
|
|
14
|
+
protected _freqMap: Record<number, number>;
|
|
15
|
+
get freqMap(): Record<number, number>;
|
|
16
|
+
set freqMap(value: Record<number, number>);
|
|
17
|
+
protected _msb: number;
|
|
18
|
+
get msb(): number;
|
|
19
|
+
set msb(value: number);
|
|
20
|
+
protected _negativeCount: number;
|
|
21
|
+
get negativeCount(): number;
|
|
22
|
+
set negativeCount(value: number);
|
|
23
|
+
get freq(): number;
|
|
24
|
+
get max(): number;
|
|
25
|
+
/**
|
|
26
|
+
* The function "readSingle" reads a single number from a specified index.
|
|
27
|
+
* @param {number} index - The `index` parameter is a number that represents the index of an element in a
|
|
28
|
+
* collection or array.
|
|
29
|
+
* @returns a number.
|
|
30
|
+
*/
|
|
31
|
+
readSingle(index: number): number;
|
|
32
|
+
/**
|
|
33
|
+
* The "update" function updates the value at a given index by adding a delta and triggers a callback
|
|
34
|
+
* to notify of the change.
|
|
35
|
+
* @param {number} position - The `index` parameter represents the index of the element that needs to be
|
|
36
|
+
* updated in the data structure.
|
|
37
|
+
* @param {number} change - The "delta" parameter represents the change in value that needs to be
|
|
38
|
+
* applied to the frequency at the specified index.
|
|
39
|
+
*/
|
|
40
|
+
update(position: number, change: number): void;
|
|
41
|
+
/**
|
|
42
|
+
* The function "writeSingle" checks the index and writes a single value with a given frequency.
|
|
43
|
+
* @param {number} index - The `index` parameter is a number that represents the index of an element. It
|
|
44
|
+
* is used to identify the specific element that needs to be written.
|
|
45
|
+
* @param {number} freq - The `freq` parameter represents the frequency value that needs to be
|
|
46
|
+
* written.
|
|
47
|
+
*/
|
|
48
|
+
writeSingle(index: number, freq: number): void;
|
|
49
|
+
/**
|
|
50
|
+
* The read function takes a count parameter, checks if it is an integer, and returns the result of
|
|
51
|
+
* calling the _read function with the count parameter clamped between 0 and the maximum value.
|
|
52
|
+
* @param {number} count - The `count` parameter is a number that represents the number of items to
|
|
53
|
+
* read.
|
|
54
|
+
* @returns a number.
|
|
55
|
+
*/
|
|
56
|
+
read(count: number): number;
|
|
57
|
+
/**
|
|
58
|
+
* The function returns the lower bound of a non-descending sequence that sums up to a given number.
|
|
59
|
+
* @param {number} sum - The `sum` parameter is a number that represents the target sum that we want
|
|
60
|
+
* to find in the sequence.
|
|
61
|
+
* @returns The lowerBound function is returning a number.
|
|
62
|
+
*/
|
|
63
|
+
lowerBound(sum: number): number;
|
|
64
|
+
/**
|
|
65
|
+
* The upperBound function returns the index of the first element in a sequence that is greater than
|
|
66
|
+
* or equal to a given sum.
|
|
67
|
+
* @param {number} sum - The "sum" parameter is a number that represents the target sum that we want
|
|
68
|
+
* to find in the sequence.
|
|
69
|
+
* @returns The upperBound function is returning a number.
|
|
70
|
+
*/
|
|
71
|
+
upperBound(sum: number): number;
|
|
72
|
+
/**
|
|
73
|
+
* The function returns the value of a specific index in a freqMap data structure, or a default value if
|
|
74
|
+
* the index is not found.
|
|
75
|
+
* @param {number} index - The `index` parameter is a number that represents the index of a node in a
|
|
76
|
+
* freqMap data structure.
|
|
77
|
+
* @returns a number.
|
|
78
|
+
*/
|
|
79
|
+
protected _getFrequency(index: number): number;
|
|
80
|
+
/**
|
|
81
|
+
* The function _updateFrequency adds a delta value to the element at the specified index in the freqMap array.
|
|
82
|
+
* @param {number} index - The index parameter is a number that represents the index of the freqMap
|
|
83
|
+
* element that needs to be updated.
|
|
84
|
+
* @param {number} delta - The `delta` parameter represents the change in value that needs to be
|
|
85
|
+
* added to the freqMap at the specified `index`.
|
|
86
|
+
*/
|
|
87
|
+
protected _updateFrequency(index: number, delta: number): void;
|
|
88
|
+
/**
|
|
89
|
+
* The function checks if the given index is valid and within the range.
|
|
90
|
+
* @param {number} index - The parameter "index" is of type number and represents the index value
|
|
91
|
+
* that needs to be checked.
|
|
92
|
+
*/
|
|
93
|
+
protected _checkIndex(index: number): void;
|
|
94
|
+
/**
|
|
95
|
+
* The function calculates the sum of elements in an array up to a given index using a binary indexed
|
|
96
|
+
* freqMap.
|
|
97
|
+
* @param {number} index - The `index` parameter is a number that represents the index of an element in a
|
|
98
|
+
* data structure.
|
|
99
|
+
* @returns a number.
|
|
100
|
+
*/
|
|
101
|
+
protected _readSingle(index: number): number;
|
|
102
|
+
/**
|
|
103
|
+
* The function `_updateNegativeCount` updates a counter based on changes in frequency values.
|
|
104
|
+
* @param {number} freqCur - The current frequency value.
|
|
105
|
+
* @param {number} freqNew - The freqNew parameter represents the new frequency value.
|
|
106
|
+
*/
|
|
107
|
+
protected _updateNegativeCount(freqCur: number, freqNew: number): void;
|
|
108
|
+
/**
|
|
109
|
+
* The `_update` function updates the values in a binary indexed freqMap starting from a given index and
|
|
110
|
+
* propagating the changes to its parent nodes.
|
|
111
|
+
* @param {number} index - The `index` parameter is a number that represents the index of the element in
|
|
112
|
+
* the data structure that needs to be updated.
|
|
113
|
+
* @param {number} delta - The `delta` parameter represents the change in value that needs to be
|
|
114
|
+
* applied to the elements in the data structure.
|
|
115
|
+
*/
|
|
116
|
+
protected _update(index: number, delta: number): void;
|
|
117
|
+
/**
|
|
118
|
+
* The `_writeSingle` function updates the frequency at a specific index and triggers a callback if
|
|
119
|
+
* the frequency has changed.
|
|
120
|
+
* @param {number} index - The `index` parameter is a number that represents the index of the element
|
|
121
|
+
* being modified or accessed.
|
|
122
|
+
* @param {number} freq - The `freq` parameter represents the new frequency value that needs to be
|
|
123
|
+
* written to the specified index `index`.
|
|
124
|
+
*/
|
|
125
|
+
protected _writeSingle(index: number, freq: number): void;
|
|
126
|
+
/**
|
|
127
|
+
* The `_read` function calculates the sum of values in a binary freqMap up to a given count.
|
|
128
|
+
* @param {number} count - The `count` parameter is a number that represents the number of elements
|
|
129
|
+
* to read from the freqMap.
|
|
130
|
+
* @returns the sum of the values obtained from calling the `_getFrequency` method for each index in the
|
|
131
|
+
* range from `count` to 1.
|
|
132
|
+
*/
|
|
133
|
+
protected _read(count: number): number;
|
|
134
|
+
/**
|
|
135
|
+
* The function `_binarySearch` performs a binary search to find the largest number that satisfies a given
|
|
136
|
+
* condition.
|
|
137
|
+
* @param {number} sum - The sum parameter is a number that represents the target sum value.
|
|
138
|
+
* @param before - The `before` parameter is a function that takes two numbers `x` and `y` as
|
|
139
|
+
* arguments and returns a boolean value. It is used to determine if `x` is less than or equal to
|
|
140
|
+
* `y`. The purpose of this function is to compare two numbers and determine their order.
|
|
141
|
+
* @returns the value of the variable "left".
|
|
142
|
+
*/
|
|
143
|
+
protected _binarySearch(sum: number, before: (x: number, y: number) => boolean): number;
|
|
46
144
|
}
|
|
@@ -8,66 +8,254 @@ exports.BinaryIndexedTree = void 0;
|
|
|
8
8
|
* @copyright Copyright (c) 2022 Tyler Zeng <zrwusa@gmail.com>
|
|
9
9
|
* @license MIT License
|
|
10
10
|
*/
|
|
11
|
+
const utils_1 = require("../../utils");
|
|
11
12
|
class BinaryIndexedTree {
|
|
12
13
|
/**
|
|
13
|
-
* The constructor initializes
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
14
|
+
* The constructor initializes the properties of an object, including default frequency, maximum
|
|
15
|
+
* value, a freqMap data structure, the most significant bit, and the count of negative frequencies.
|
|
16
|
+
* @param - - `frequency`: The default frequency value. It is optional and has a default
|
|
17
|
+
* value of 0.
|
|
17
18
|
*/
|
|
18
|
-
constructor(
|
|
19
|
-
this.
|
|
19
|
+
constructor({ frequency = 0, max }) {
|
|
20
|
+
this._freq = frequency;
|
|
21
|
+
this._max = max;
|
|
22
|
+
this._freqMap = { 0: 0 };
|
|
23
|
+
this._msb = (0, utils_1.getMSB)(max);
|
|
24
|
+
this._negativeCount = frequency < 0 ? max : 0;
|
|
20
25
|
}
|
|
21
|
-
get
|
|
22
|
-
return this.
|
|
26
|
+
get freqMap() {
|
|
27
|
+
return this._freqMap;
|
|
23
28
|
}
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
set freqMap(value) {
|
|
30
|
+
this._freqMap = value;
|
|
31
|
+
}
|
|
32
|
+
get msb() {
|
|
33
|
+
return this._msb;
|
|
34
|
+
}
|
|
35
|
+
set msb(value) {
|
|
36
|
+
this._msb = value;
|
|
37
|
+
}
|
|
38
|
+
get negativeCount() {
|
|
39
|
+
return this._negativeCount;
|
|
40
|
+
}
|
|
41
|
+
set negativeCount(value) {
|
|
42
|
+
this._negativeCount = value;
|
|
43
|
+
}
|
|
44
|
+
get freq() {
|
|
45
|
+
return this._freq;
|
|
46
|
+
}
|
|
47
|
+
get max() {
|
|
48
|
+
return this._max;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The function "readSingle" reads a single number from a specified index.
|
|
52
|
+
* @param {number} index - The `index` parameter is a number that represents the index of an element in a
|
|
53
|
+
* collection or array.
|
|
54
|
+
* @returns a number.
|
|
55
|
+
*/
|
|
56
|
+
readSingle(index) {
|
|
57
|
+
this._checkIndex(index);
|
|
58
|
+
return this._readSingle(index);
|
|
26
59
|
}
|
|
27
60
|
/**
|
|
28
|
-
* The update function updates the
|
|
29
|
-
*
|
|
30
|
-
* @param {number}
|
|
31
|
-
* updated.
|
|
32
|
-
* @param {number}
|
|
33
|
-
*
|
|
61
|
+
* The "update" function updates the value at a given index by adding a delta and triggers a callback
|
|
62
|
+
* to notify of the change.
|
|
63
|
+
* @param {number} position - The `index` parameter represents the index of the element that needs to be
|
|
64
|
+
* updated in the data structure.
|
|
65
|
+
* @param {number} change - The "delta" parameter represents the change in value that needs to be
|
|
66
|
+
* applied to the frequency at the specified index.
|
|
34
67
|
*/
|
|
35
|
-
update(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
68
|
+
update(position, change) {
|
|
69
|
+
this._checkIndex(position);
|
|
70
|
+
const freqCur = this._readSingle(position);
|
|
71
|
+
this._update(position, change);
|
|
72
|
+
this._updateNegativeCount(freqCur, freqCur + change);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The function "writeSingle" checks the index and writes a single value with a given frequency.
|
|
76
|
+
* @param {number} index - The `index` parameter is a number that represents the index of an element. It
|
|
77
|
+
* is used to identify the specific element that needs to be written.
|
|
78
|
+
* @param {number} freq - The `freq` parameter represents the frequency value that needs to be
|
|
79
|
+
* written.
|
|
80
|
+
*/
|
|
81
|
+
writeSingle(index, freq) {
|
|
82
|
+
this._checkIndex(index);
|
|
83
|
+
this._writeSingle(index, freq);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* The read function takes a count parameter, checks if it is an integer, and returns the result of
|
|
87
|
+
* calling the _read function with the count parameter clamped between 0 and the maximum value.
|
|
88
|
+
* @param {number} count - The `count` parameter is a number that represents the number of items to
|
|
89
|
+
* read.
|
|
90
|
+
* @returns a number.
|
|
91
|
+
*/
|
|
92
|
+
read(count) {
|
|
93
|
+
if (!Number.isInteger(count)) {
|
|
94
|
+
throw new Error('Invalid count');
|
|
39
95
|
}
|
|
96
|
+
return this._read(Math.max(Math.min(count, this.max), 0));
|
|
40
97
|
}
|
|
41
98
|
/**
|
|
42
|
-
* The function
|
|
43
|
-
* @param {number}
|
|
44
|
-
*
|
|
45
|
-
* @returns The function
|
|
46
|
-
* `i`.
|
|
99
|
+
* The function returns the lower bound of a non-descending sequence that sums up to a given number.
|
|
100
|
+
* @param {number} sum - The `sum` parameter is a number that represents the target sum that we want
|
|
101
|
+
* to find in the sequence.
|
|
102
|
+
* @returns The lowerBound function is returning a number.
|
|
47
103
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
104
|
+
lowerBound(sum) {
|
|
105
|
+
if (this.negativeCount > 0) {
|
|
106
|
+
throw new Error('Sequence is not non-descending');
|
|
107
|
+
}
|
|
108
|
+
return this._binarySearch(sum, (x, y) => x < y);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* The upperBound function returns the index of the first element in a sequence that is greater than
|
|
112
|
+
* or equal to a given sum.
|
|
113
|
+
* @param {number} sum - The "sum" parameter is a number that represents the target sum that we want
|
|
114
|
+
* to find in the sequence.
|
|
115
|
+
* @returns The upperBound function is returning a number.
|
|
116
|
+
*/
|
|
117
|
+
upperBound(sum) {
|
|
118
|
+
if (this.negativeCount > 0) {
|
|
119
|
+
throw new Error('Must not be descending');
|
|
120
|
+
}
|
|
121
|
+
return this._binarySearch(sum, (x, y) => x <= y);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* The function returns the value of a specific index in a freqMap data structure, or a default value if
|
|
125
|
+
* the index is not found.
|
|
126
|
+
* @param {number} index - The `index` parameter is a number that represents the index of a node in a
|
|
127
|
+
* freqMap data structure.
|
|
128
|
+
* @returns a number.
|
|
129
|
+
*/
|
|
130
|
+
_getFrequency(index) {
|
|
131
|
+
if (index in this.freqMap) {
|
|
132
|
+
return this.freqMap[index];
|
|
133
|
+
}
|
|
134
|
+
return this.freq * (index & -index);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* The function _updateFrequency adds a delta value to the element at the specified index in the freqMap array.
|
|
138
|
+
* @param {number} index - The index parameter is a number that represents the index of the freqMap
|
|
139
|
+
* element that needs to be updated.
|
|
140
|
+
* @param {number} delta - The `delta` parameter represents the change in value that needs to be
|
|
141
|
+
* added to the freqMap at the specified `index`.
|
|
142
|
+
*/
|
|
143
|
+
_updateFrequency(index, delta) {
|
|
144
|
+
this.freqMap[index] = this._getFrequency(index) + delta;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* The function checks if the given index is valid and within the range.
|
|
148
|
+
* @param {number} index - The parameter "index" is of type number and represents the index value
|
|
149
|
+
* that needs to be checked.
|
|
150
|
+
*/
|
|
151
|
+
_checkIndex(index) {
|
|
152
|
+
if (!Number.isInteger(index)) {
|
|
153
|
+
throw new Error('Invalid index: Index must be an integer.');
|
|
154
|
+
}
|
|
155
|
+
if (index < 0 || index >= this.max) {
|
|
156
|
+
throw new Error('Index out of range: Index must be within the range [0, this.max).');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* The function calculates the sum of elements in an array up to a given index using a binary indexed
|
|
161
|
+
* freqMap.
|
|
162
|
+
* @param {number} index - The `index` parameter is a number that represents the index of an element in a
|
|
163
|
+
* data structure.
|
|
164
|
+
* @returns a number.
|
|
165
|
+
*/
|
|
166
|
+
_readSingle(index) {
|
|
167
|
+
index = index + 1;
|
|
168
|
+
let sum = this._getFrequency(index);
|
|
169
|
+
const z = index - (index & -index);
|
|
170
|
+
index--;
|
|
171
|
+
while (index !== z) {
|
|
172
|
+
sum -= this._getFrequency(index);
|
|
173
|
+
index -= index & -index;
|
|
53
174
|
}
|
|
54
175
|
return sum;
|
|
55
176
|
}
|
|
56
177
|
/**
|
|
57
|
-
* The function `
|
|
58
|
-
* @param {number}
|
|
59
|
-
*
|
|
60
|
-
* @param {number} end - The "end" parameter represents the ending index of the range for which we want to calculate
|
|
61
|
-
* the sum.
|
|
62
|
-
* @returns the sum of the elements in the range specified by the start and end indices.
|
|
178
|
+
* The function `_updateNegativeCount` updates a counter based on changes in frequency values.
|
|
179
|
+
* @param {number} freqCur - The current frequency value.
|
|
180
|
+
* @param {number} freqNew - The freqNew parameter represents the new frequency value.
|
|
63
181
|
*/
|
|
64
|
-
|
|
65
|
-
if (
|
|
66
|
-
|
|
67
|
-
|
|
182
|
+
_updateNegativeCount(freqCur, freqNew) {
|
|
183
|
+
if (freqCur < 0 && freqNew >= 0) {
|
|
184
|
+
this.negativeCount--;
|
|
185
|
+
}
|
|
186
|
+
else if (freqCur >= 0 && freqNew < 0) {
|
|
187
|
+
this.negativeCount++;
|
|
188
|
+
}
|
|
68
189
|
}
|
|
69
|
-
|
|
70
|
-
|
|
190
|
+
/**
|
|
191
|
+
* The `_update` function updates the values in a binary indexed freqMap starting from a given index and
|
|
192
|
+
* propagating the changes to its parent nodes.
|
|
193
|
+
* @param {number} index - The `index` parameter is a number that represents the index of the element in
|
|
194
|
+
* the data structure that needs to be updated.
|
|
195
|
+
* @param {number} delta - The `delta` parameter represents the change in value that needs to be
|
|
196
|
+
* applied to the elements in the data structure.
|
|
197
|
+
*/
|
|
198
|
+
_update(index, delta) {
|
|
199
|
+
index = index + 1;
|
|
200
|
+
while (index <= this.max) {
|
|
201
|
+
this._updateFrequency(index, delta);
|
|
202
|
+
index += index & -index;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* The `_writeSingle` function updates the frequency at a specific index and triggers a callback if
|
|
207
|
+
* the frequency has changed.
|
|
208
|
+
* @param {number} index - The `index` parameter is a number that represents the index of the element
|
|
209
|
+
* being modified or accessed.
|
|
210
|
+
* @param {number} freq - The `freq` parameter represents the new frequency value that needs to be
|
|
211
|
+
* written to the specified index `index`.
|
|
212
|
+
*/
|
|
213
|
+
_writeSingle(index, freq) {
|
|
214
|
+
const freqCur = this._readSingle(index);
|
|
215
|
+
this._update(index, freq - freqCur);
|
|
216
|
+
this._updateNegativeCount(freqCur, freq);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* The `_read` function calculates the sum of values in a binary freqMap up to a given count.
|
|
220
|
+
* @param {number} count - The `count` parameter is a number that represents the number of elements
|
|
221
|
+
* to read from the freqMap.
|
|
222
|
+
* @returns the sum of the values obtained from calling the `_getFrequency` method for each index in the
|
|
223
|
+
* range from `count` to 1.
|
|
224
|
+
*/
|
|
225
|
+
_read(count) {
|
|
226
|
+
let index = count;
|
|
227
|
+
let sum = 0;
|
|
228
|
+
while (index) {
|
|
229
|
+
sum += this._getFrequency(index);
|
|
230
|
+
index -= index & -index;
|
|
231
|
+
}
|
|
232
|
+
return sum;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* The function `_binarySearch` performs a binary search to find the largest number that satisfies a given
|
|
236
|
+
* condition.
|
|
237
|
+
* @param {number} sum - The sum parameter is a number that represents the target sum value.
|
|
238
|
+
* @param before - The `before` parameter is a function that takes two numbers `x` and `y` as
|
|
239
|
+
* arguments and returns a boolean value. It is used to determine if `x` is less than or equal to
|
|
240
|
+
* `y`. The purpose of this function is to compare two numbers and determine their order.
|
|
241
|
+
* @returns the value of the variable "left".
|
|
242
|
+
*/
|
|
243
|
+
_binarySearch(sum, before) {
|
|
244
|
+
let left = 0;
|
|
245
|
+
let right = this.msb << 1;
|
|
246
|
+
let sumT = sum;
|
|
247
|
+
while (right > left + 1) {
|
|
248
|
+
const middle = (left + right) >> 1;
|
|
249
|
+
const sumM = this._getFrequency(middle);
|
|
250
|
+
if (middle <= this.max && before(sumM, sumT)) {
|
|
251
|
+
sumT -= sumM;
|
|
252
|
+
left = middle;
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
right = middle;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return left;
|
|
71
259
|
}
|
|
72
260
|
}
|
|
73
261
|
exports.BinaryIndexedTree = BinaryIndexedTree;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-indexed-tree.js","sourceRoot":"","sources":["../../../src/data-structures/binary-tree/binary-indexed-tree.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"binary-indexed-tree.js","sourceRoot":"","sources":["../../../src/data-structures/binary-tree/binary-indexed-tree.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,uCAAmC;AAEnC,MAAa,iBAAiB;IAI5B;;;;;OAKG;IACH,YAAY,EAAC,SAAS,GAAG,CAAC,EAAE,GAAG,EAAoC;QACjE,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAA,cAAM,EAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAID,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,CAAC,KAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAID,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,CAAC,KAAa;QACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAID,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,aAAa,CAAC,KAAa;QAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,QAAgB,EAAE,MAAc;QACrC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,KAAa,EAAE,IAAY;QACrC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SAClC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,GAAW;QACpB,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;SACnD;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,GAAW;QACpB,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACO,aAAa,CAAC,KAAa;QACnC,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC5B;QAED,OAAO,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACO,gBAAgB,CAAC,KAAa,EAAE,KAAa;QACrD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACO,WAAW,CAAC,KAAa;QACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC7D;QACD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE;YAClC,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;SACtF;IACH,CAAC;IAED;;;;;;OAMG;IACO,WAAW,CAAC,KAAa;QACjC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QAClB,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;QAEnC,KAAK,EAAE,CAAC;QAER,OAAO,KAAK,KAAK,CAAC,EAAE;YAClB,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjC,KAAK,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC;SACzB;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;OAIG;IACO,oBAAoB,CAAC,OAAe,EAAE,OAAe;QAC7D,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE;YAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;aAAM,IAAI,OAAO,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE;YACtC,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;IACH,CAAC;IAED;;;;;;;OAOG;IACO,OAAO,CAAC,KAAa,EAAE,KAAa;QAC5C,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QAElB,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,KAAK,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC;SACzB;IACH,CAAC;IAED;;;;;;;OAOG;IACO,YAAY,CAAC,KAAa,EAAE,IAAY;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,KAAa;QAC3B,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,KAAK,EAAE;YACZ,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjC,KAAK,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC;SACzB;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACO,aAAa,CAAC,GAAW,EAAE,MAAyC;QAC5E,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI,GAAG,GAAG,CAAC;QAEf,OAAO,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE;YACvB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAExC,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;gBAC5C,IAAI,IAAI,IAAI,CAAC;gBACb,IAAI,GAAG,MAAM,CAAC;aACf;iBAAM;gBACL,KAAK,GAAG,MAAM,CAAC;aAChB;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAhSD,8CAgSC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binary-tree.js","sourceRoot":"","sources":["../../../src/data-structures/binary-tree/binary-tree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"binary-tree.js","sourceRoot":"","sources":["../../../src/data-structures/binary-tree/binary-tree.ts"],"names":[],"mappings":"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"}
|