为什么使用数组而不是BT来实现分段树

时间:2017-03-05 10:17:50

标签: data-structures tree segment

我对分段树实现有疑问。为什么使用数组而不是二叉树实现段树?

如果我使用数组实现它,我会得到什么好处,如果实现为二叉树,那么问题是什么?为了实现使用数组,我们需要使用左子函数作为2 * i + 1和右子函数作为2 * i + 2.如果我们实现为二叉树,我们可以简单地做节点 - > lft&节点 - > RHT。但是问题是什么?谢谢

2 个答案:

答案 0 :(得分:2)

优点是密度。数组占用的内容与内容一样多。对于二叉树,每个节点都有内存管理开销。子指针也需要额外的空间。此外,数组通常位于连续的内存位置,而树节点可能遍布整个堆,这意味着内存缓存不太可能有所帮助。

答案 1 :(得分:0)

表示为数组的另一个优点是,我们既有父母到孩子的链接,也有孩子到父母的链接。