高级数据结构之线段树(Segment Tree)
Posted 白马负金羁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高级数据结构之线段树(Segment Tree)相关的知识,希望对你有一定的参考价值。
线段树(Segment Tree)也是一种树形的数据结构(本质上是一棵二叉搜索树),只不过树中结点存储的值是一个区间或一个线段。 常用于区间内数值的查询操作,比如一个区间内的最大值(max),最小值(min),以及加和(sum)等等。该结构由美国计算机科学家Jon Bentley于1977年提出,Jon Bentley还是畅销书《编程珠玑》的作者。有些资料上将线段树和区间树(Interval Trees)混淆,这是不正确的。
Both segment and interval trees store intervals. Segment tree is mainly optimized for queries for a given point (i.e.,"which of these intervals contains a given point"), and interval trees are mainly optimized for overlapping queries for a given interval ("which of these intervals overlap with a given interval").
这两种结构一般应用在计算几何学或者多维数据管理等领域,通常的数据结构教科书上是很少提及的。一个值得参考的权威资料是【1】,其中第1版第18章(第2版第19章)介绍了这两种数据结构(由台湾中央研究院院士李德财教授(ACM Fellow, IEEE Fellow)执笔)。本文将主要介绍线段树方面的话题。
以上是关于高级数据结构之线段树(Segment Tree)的主要内容,如果未能解决你的问题,请参考以下文章