Mat*_*att 9 arrays binary-tree linked-list
最近,对于数据结构类,我被问到一个问题,即如何删除懒惰(即,首先标记需要删除的项目的删除,然后在某个时候删除所有标记的项目)将是有利的/不利于数组,链表或二叉树.以下是我的想法:
我认为这一切都取决于具体情况和要求。一般来说,使用这种方法对它们进行标记,然后将其删除,它们都有很多相似的优点和缺点。
类似的优点: - 当标记为删除时,数据结构不会发生变化,这使得删除速度更快。-您可以在已删除的项目之上插入,这意味着插入也无需移动,而且插入可以更快地完成,因为它可以覆盖第一个删除,而不是查找列表的末尾
类似的缺点: - 删除的项目浪费空间,因为它们只是坐在那里 - 必须横向两次才能删除项目,一次标记它,再一次删除它 - 许多标记的删除项目会污染进行搜索的数据结构由于必须搜索已删除的项目,因此需要更长的时间。
| 归档时间: |
|
| 查看次数: |
4872 次 |
| 最近记录: |