我正在阅读有关使用Gnuplot和Cairo -terminal制作动画的blog post,该算法的计划很简单
将png图像保存到工作目录,以及
将最新视频保存到工作目录。
我想要更多的东西,以便用户在转换图像时还可以实时浏览图像:
数据并行模型-规则排列在数组中的数据结构
在某些界面中为用户提供一些列表,用户可以通过箭头按钮进行浏览
在此界面中,新图像被添加到列表的末尾
用户还可以实时从流中删除不良图像
在并行编程的数据并行性模型(即规则排列在数组中的数据集)中,效果可能会很好。
操作(添加,删除)可以对此数据进行操作,但可以独立于不同的进程。
假设在版本1中不需要高效搜索以简化操作。
但是,如果您提供的模型也可以做到这一点,我很乐意考虑一下-我们将其称为版本2。
我认为这里的列表不是一个好的数据结构,因为想要删除数据并在数据结构的末尾连续添加容易的机会。
由于删除,数据结构堆栈也不起作用。
我认为某种树数据结构可以工作,因为那里的删除和搜索便宜。
但是,数据并行模型中的简单数组就足够了。
语言能力
由于并行性,我认为Java是一个不错的选择。
但是,任何语言和伪代码也都不错。
前端
我有一个直觉,前端对这种系统的要求应该是qT作为终端仿真器。
对于廉价的删除和连续的末尾添加,更好的数据结构是什么?
最佳答案
Java LinkedList
似乎是您可以在版本1中使用的东西。您可以使用其单个参数add()
在固定时间内追加到列表中。如果“实时”是指图像在用户的显示中并因此以某种方式指向,则也可以在恒定时间内删除它们。
最佳使用内存,而无需像Arraylist
那样重新实例化。
在对象(而不是数组)上实现的任何双链表都可以。
您的第二个版本不够清晰。