发布于2020-12-27
上次编辑2021-04-19
线段树 1
线段树是一棵二叉树,他的每个结点包含了两个额外的属性 start 和 end 用于表示该结点所代表的区间。start 和 end 都是整数,并按照如下的方式赋值:
根结点的 start 和 end 由 build 方法所给出。
对于结点 A 的左儿子,有 start=A.start, end=(A.start + A.end) / 2。
对于结点 A 的右儿子,有 start=(A.start + A.end) / 2 + 1, end=A.end。
如果 start 等于 end, 那么该结点是叶子结点,不再有左右儿子。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | |