A segment tree stores aggregates over ranges (sum/min/max) and supports range queries and point updates in O(log n). It’s useful when you need many queries like “sum on [l..r]” with updates.