|
|
1
5
对于许多常用语言,阵列将需要分配存储 K (数据的)存储器地址。一个单独链接的列表需要每个节点2个地址(data&next)。一个双链接列表需要每个节点3个地址。 让 n 是特定节点的实际子节点数 一 :
价值 K 允许您确定2 n 或3 n 与简单地将地址存储在一个数组中相比,地址将平均为增益或损耗。 |
|
|
2
5
这不是一个技巧问题。想想记忆 开销 链接列表中的。如何实现链接列表(与数组相比)? 另外(尽管这超出了问题的范围!)空间消费并不是唯一的决定因素。缓存在现代CPU中扮演着重要的角色,将单个子节点存储在数组中而不是链接列表中可以显著提高缓存位置(从而显著提高树的性能)。 |
|
|
3
3
数组必须预先分配空间,但我们可以使用它们快速访问任何条目。
提示:如果您愿意,您可以一次分配整个数组,但通常我们会分配,
|
|
|
4
1
我可以想象,在许多情况下,使用
|
|
5
1
您假设数组不能动态地重新分配。如果可以的话,数组会获胜,因为它不需要大于k个项(加上一个恒定的开销),也因为它不需要指针的每项存储。 |