Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在元素为空的情况下,需要用零来完成段树吗?_Arrays_Data Structures_Segment Tree - Fatal编程技术网

Arrays 在元素为空的情况下,需要用零来完成段树吗?

Arrays 在元素为空的情况下,需要用零来完成段树吗?,arrays,data-structures,segment-tree,Arrays,Data Structures,Segment Tree,我现在处理分段树。众所周知,分段树有2^n片叶子。让我们想象一个数组data,它由5个元素[1,2,3,4,5]组成,是段树的基本元素。我们还有一个包含树本身的数组tree\u data(tree\u data的右半部分包含data的元素)。在tree\u data中分配5个元素以包含data中的元素是合乎逻辑的,但我们必须用零填充其他三个元素,以使tree\u data的右半部分由8个元素组成并包含[1、2、3、4、5、0、0、0]。 为什么我们要这样做,而不是只用五个元素填充数组来节省内存?

我现在处理分段树。众所周知,分段树有2^n片叶子。让我们想象一个数组
data
,它由5个元素[1,2,3,4,5]组成,是段树的基本元素。我们还有一个包含树本身的数组
tree\u data
tree\u data
的右半部分包含
data
的元素)。在
tree\u data
中分配5个元素以包含
data
中的元素是合乎逻辑的,但我们必须用零填充其他三个元素,以使
tree\u data
的右半部分由8个元素组成并包含[1、2、3、4、5、0、0、0]。 为什么我们要这样做,而不是只用五个元素填充数组来节省内存?为什么我们需要节点7、14、15(见图)来创建段树