我想实现一个生成图形的工具,其内存将分配在所谓的“磁带”数据结构上。您可以将磁带视为一个元素数组,每个元素都包含“节点 ID”,链接到其“父节点”以及“子节点”。
我正在寻找一种方法,在该方法中识别阵列中的可用插槽很便宜,因此当要添加新节点时,可以快速识别空插槽。
如果我使用动态数组来实现磁带呢?在需要调整数组大小的情况下,是否可以避免将整个磁带复制到新分配的数组中?
这里有人知道吗?
我假设您想预先分配一个大的“磁带”,例如数千个节点。
您应该结合两个概念:
每当磁带上的条目被释放时,将其添加到空闲列表中。
每当磁带中需要新条目时:
您还可以将此与重新分配方案结合使用,在该方案中,您保留磁带的总分配大小,并在最后使用的条目到达磁带末尾时重新分配。