前置知识
数组,结构体,二叉树
引入
有时候我们会遇到一些大规模的区间查找和区间修改问题,比如让你维护一个 长度的数列,要求操作有区间求和、区间加(区间每个数加上一个值),让你在一秒内完成 次操作。 暴力是肯定不行的,数据范围太大,会超时。 所以我们就有一种专门解决大范围区间修改查询的数据结构:线段树。
线段树
线段树本质上是把整个数列拆分了,用一个一个区间来表示。 比如有 个节点 根节点代表整个数列的区间, 根节点的两个子节点代表根区间二分成两部分,也就是 和 。 而子节点也是一棵线段树。 一直往下眼神,叶子结点就代表着单一位置