Expand description
High-performance segment trees and lazy segment trees for efficient range queries and updates.
§Quick Start
use array_range_query::{SegTreeSum, LazySegTreeAddSum};
// Segment tree for range sum queries
let mut tree = SegTreeSum::<i32>::from_vec(vec![1, 2, 3, 4, 5]);
assert_eq!(tree.query(1..4), 9); // sum of [2, 3, 4]
tree.update(2, 10);
assert_eq!(tree.query(..), 22);
// Lazy segment tree for range add updates and sum queries
let mut lazy_tree = LazySegTreeAddSum::<i32>::from_vec(vec![1, 2, 3, 4, 5]);
lazy_tree.update(1..4, 10); // add 10 to range [1, 4)
assert_eq!(lazy_tree.query(..), 45);For detailed documentation, examples, and use cases, see the README.
Re-exports§
pub use helpers::LazySegTreeAddMax;pub use helpers::LazySegTreeAddMin;pub use helpers::LazySegTreeAddSum;pub use helpers::LazySegTreeReplaceSum;pub use helpers::SegTreeMax;pub use helpers::SegTreeMin;pub use helpers::SegTreeSum;
Modules§
- helpers
- Helper types for common segment tree operations.
Structs§
- Lazy
SegTree - SegTree
- A generic Segment Tree data structure.
- SegTree
Node - A node in a power-of-two layout segment tree.
Traits§
- Lazy
SegTree Spec - Specification for lazy segment tree operations.
- SegTree
Spec - Specification for segment tree operations.