连续添加和廉价删除的数据结构
Data structure for continuous additions and cheap deletions
我正在阅读这篇关于使用 Gnuplot 和 Cairo -terminal 制作动画的文章blog post,algo 的计划很简单
- 将 png 图像保存到工作目录,并且
- 将最新的视频保存到工作目录。
我想要更多的东西,以便用户在转换图像时也可以实时浏览图像:
Data-parallelism model - 数据结构有规律地排列成数组
- 在某个界面中给用户一些列表,用户可以通过箭头按钮浏览这些列表
- 在此界面中,新图像正在添加到列表末尾
- 用户还可以实时从流中删除不良图像
这可能适用于并行编程的数据并行模型,即以数组形式定期构建的数据集。
操作(添加、删除)可以对这些数据进行操作,但独立于不同的进程。
让我们假设在版本 1 中不需要为了简化而进行高效搜索。
但是,如果你有一个模型也可以做到这一点,我很乐意考虑它——我们称之为版本 2。
我认为列表在这里不是一个好的数据结构,因为需要删除和连续轻松添加到数据结构末尾的机会。
由于删除,数据结构 stack 也无法正常工作。
我认为某种 tree 数据结构可以工作,因为那里的删除和搜索成本相当低。
但是,数据并行模型中的一个简单数组就足够了。
语言
我认为 Java 是一个不错的选择,因为它具有并行性。
但是,任何语言和伪代码也都很好。
前端
我有一种直觉,前端对这样的系统的要求应该是qT作为终端仿真器。
廉价删除和连续添加到底有什么更好的数据结构?
Java LinkedList
似乎是你可以用于版本 1 的东西。你可以使用它的单个参数 add()
在恒定时间内附加到列表。如果 "real-time" 你的意思是当图像在用户的显示器中并因此以某种方式指向时,也可以在恒定时间内删除它们。
优化内存使用,并且不会像 Arraylist
那样重新实例化。
任何在对象(而不是数组)上实现的双向链表都可以。
你的第二个版本不够清楚。
我正在阅读这篇关于使用 Gnuplot 和 Cairo -terminal 制作动画的文章blog post,algo 的计划很简单
- 将 png 图像保存到工作目录,并且
- 将最新的视频保存到工作目录。
我想要更多的东西,以便用户在转换图像时也可以实时浏览图像:
Data-parallelism model - 数据结构有规律地排列成数组
- 在某个界面中给用户一些列表,用户可以通过箭头按钮浏览这些列表
- 在此界面中,新图像正在添加到列表末尾
- 用户还可以实时从流中删除不良图像
这可能适用于并行编程的数据并行模型,即以数组形式定期构建的数据集。 操作(添加、删除)可以对这些数据进行操作,但独立于不同的进程。
让我们假设在版本 1 中不需要为了简化而进行高效搜索。 但是,如果你有一个模型也可以做到这一点,我很乐意考虑它——我们称之为版本 2。
我认为列表在这里不是一个好的数据结构,因为需要删除和连续轻松添加到数据结构末尾的机会。 由于删除,数据结构 stack 也无法正常工作。 我认为某种 tree 数据结构可以工作,因为那里的删除和搜索成本相当低。 但是,数据并行模型中的一个简单数组就足够了。
语言
我认为 Java 是一个不错的选择,因为它具有并行性。 但是,任何语言和伪代码也都很好。
前端
我有一种直觉,前端对这样的系统的要求应该是qT作为终端仿真器。
廉价删除和连续添加到底有什么更好的数据结构?
Java LinkedList
似乎是你可以用于版本 1 的东西。你可以使用它的单个参数 add()
在恒定时间内附加到列表。如果 "real-time" 你的意思是当图像在用户的显示器中并因此以某种方式指向时,也可以在恒定时间内删除它们。
优化内存使用,并且不会像 Arraylist
那样重新实例化。
任何在对象(而不是数组)上实现的双向链表都可以。
你的第二个版本不够清楚。