这是一个我无法用言语表达答案的问题。
“假设每个节点最多可以有k个子节点。v是每个节点平均拥有的子节点数量。对于哪些v值,使用链表存储子节点比使用数组更有效(以所使用的空间为标准)?为什么?”
我相信我可以用简单易懂的英语回答“为什么”,因为使用链表会更有效率,因为在填充值时只为链表中的节点分配空间,而不是像数组一样为所有节点分配空间,从而避免了创建空节点(即如果您的平均数小于最大值,则为数组中的空索引)占用内存。
因此,如果您的平均值为6个子节点,而最大值为200,则在创建树时,数组将为每个节点的所有200个子节点创建空间,但链表仅在需要时为节点分配空间。 因此,使用链表,所使用的空间将近似于平均值;使用数组,所使用的空间将达到最大值。
...我不知道何时使用数组会更有效率。 这是一个诡异的问题吗? 我需要考虑数组在创建时需要限制总节点数吗?