看动画学算法之:线段树-segmentTree

简介

什么是线段树呢?线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。

线段树的每个节点都表示一个区间,而根据线段树的不同特征,线段树的节点值可以表示这个区间里的最小值,最大值或者sum值等等。

最小线段树

下面我们以最小线段树为例来说明一下线段树的特性:

如果原始数据是一个数组,我们也以数组来表示线段树。

假设生成的线段树的起点index=1,并且对线段树中的每个非叶子节点index k来说,它的左子节点index=2* k, 而它的右子节点index=2* k+1 。

上图中,标黄色的是原始数组,总共有七个元素。

上面的树形结构就是根据原始数组构建出来的线段树了。

因为是最小线段树,每个非叶子节点存储的都是子节点中的最小

猜你喜欢

转载自blog.csdn.net/superfjj/article/details/108481595