dastal - v5.0.0 / InOrderSegmentTree
An InOrderSegmentTree is a SegmentTree that's internally represented as a binary tree within an array, with nodes stored in in-order traversal. The tree's leaf nodes represent the elements of the segment tree:
A look at performance and how it works can be found here.
Name |
---|
T |
- SegmentTree<T>
• new InOrderSegmentTree<T>(combine
, elements?
)
Construct a new segment tree
Name |
---|
T |
Name | Type | Default value | Description |
---|---|---|---|
combine |
CombineFn<T, T> | undefined |
The function used to aggregate segment information |
elements |
Iterable <T> |
[] | A set of elements to add into the initial tree |
src/segmentTree/inOrderSegmentTree.ts:21
• get
size(): number
The number of elements in the collection.
number
src/segmentTree/inOrderSegmentTree.ts:95
▸ [iterator](): Iterator
<T, any, undefined>
Return an iterator through the tree's elements
Iterator
<T, any, undefined>
src/segmentTree/inOrderSegmentTree.ts:102
▸ clear(): void
Removes all elements.
void
src/segmentTree/inOrderSegmentTree.ts:36
▸ pop(): undefined
| T
Retrieves and removes the last element
undefined
| T
src/segmentTree/inOrderSegmentTree.ts:40
▸ push(element
): number
Appends an element to the tree
Name | Type |
---|---|
element |
T |
number
src/segmentTree/inOrderSegmentTree.ts:52
▸ query(min
, max
): T
Get the aggregated result of a given range in the tree
Name | Type |
---|---|
min |
number |
max |
number |
T
src/segmentTree/inOrderSegmentTree.ts:69
▸ update(min
, max
, operation
): void
Update the elements of a given range in the tree
Name | Type |
---|---|
min |
number |
max |
number |
operation |
(element : T , index : number ) => T |
void