连续添加和廉价删除的数据结构

Data structure for continuous additions and cheap deletions

我正在阅读这篇关于使用 Gnuplot 和 Cairo -terminal 制作动画的文章blog post,algo 的计划很简单

我想要更多的东西,以便用户在转换图像时也可以实时浏览图像:

Data-parallelism model - 数据结构有规律地排列成数组

这可能适用于并行编程的数据并行模型,即以数组形式定期构建的数据集。 操作(添加、删除)可以对这些数据进行操作,但独立于不同的进程。

让我们假设在版本 1 中不需要为了简化而进行高效搜索。 但是,如果你有一个模型也可以做到这一点,我很乐意考虑它——我们称之为版本 2。

我认为列表在这里不是一个好的数据结构,因为需要删除和连续轻松添加到数据结构末尾的机会。 由于删除,数据结构 stack 也无法正常工作。 我认为某种 tree 数据结构可以工作,因为那里的删除和搜索成本相当低。 但是,数据并行模型中的一个简单数组就足够了。

语言

我认为 Java 是一个不错的选择,因为它具有并行性。 但是,任何语言和伪代码也都很好。

前端

我有一种直觉,前端对这样的系统的要求应该是qT作为终端仿真器。

廉价删除和连续添加到底有什么更好的数据结构?

Java LinkedList 似乎是你可以用于版本 1 的东西。你可以使用它的单个参数 add() 在恒定时间内附加到列表。如果 "real-time" 你的意思是当图像在用户的显示器中并因此以某种方式指向时,也可以在恒定时间内删除它们。 优化内存使用,并且不会像 Arraylist 那样重新实例化。 任何在对象(而不是数组)上实现的双向链表都可以。

你的第二个版本不够清楚。