线段树(英语:Segment tree)是一种二叉树形数据结构,1977年由Jon Louis Bentley发明[1],用以储存区间或线段,并且允许快速查询结构内包含某一点的所有区间。 一个包含{\displaystyle n}个区间的线段树,空间复杂度为{\displaystyle O(n\log n)},查询的时间复杂度则为{\displaystyle O(\log n+k)},其中{\displaystyle k}是符合条件的区间数量。 此数据结构亦可推广到高维度。