【发布时间】:2010-02-08 08:06:27
【问题描述】:
这是一个作业问题,我很难回答。
“假设一棵树的每个节点最多可以有 k 个子节点。设 v 是每个节点的平均子节点数。对于 v 的什么值,存储子节点更有效(就使用的空间而言)链表中的节点与数组中的存储?为什么?"
我相信我可以回答“为什么?”或多或少地用简单的英语 - 使用链表会更有效,因为不是有一堆空节点(即如果你的平均值低于最大值,则数组中的空索引)占用内存你只分配空间当您实际填写一个值时,对于链表中的一个节点。
因此,如果在最大值为 200 时平均有 6 个子节点,则该数组将在创建树时为每个节点的所有 200 个子节点创建空间,但链表只会为节点分配空间如所须。因此,使用链表,使用的空间大约是(?)平均值;使用数组,使用的间隔将是最大值。
...我不知道什么时候使用数组会更有效。这是一个技巧问题吗?我是否必须考虑到数组在创建时需要对节点总数进行限制这一事实?
【问题讨论】:
标签: arrays tree performance linked-list theory