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