发布于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 |
|