我正在阅读有关使用Gnuplot和Cairo -terminal制作动画的blog post,该算法的计划很简单


将png图像保存到工作目录,以及
将最新视频保存到工作目录。


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

数据并行模型-规则排列在数组中的数据结构


在某些界面中为用户提供一些列表,用户可以通过箭头按钮进行浏览
在此界面中,新图像被添加到列表的末尾
用户还可以实时从流中删除不良图像


在并行编程的数据并行性模型(即规则排列在数组中的数据集)中,效果可能会很好。
操作(添加,删除)可以对此数据进行操作,但可以独立于不同的进程。

假设在版本1中不需要高效搜索以简化操作。
但是,如果您提供的模型也可以做到这一点,我很乐意考虑一下-我们将其称为版本2。

我认为这里的列表不是一个好的数据结构,因为想要删除数据并在数据结构的末尾连续添加容易的机会。
由于删除,数据结构堆栈也不起作用。
我认为某种树数据结构可以工作,因为那里的删除和搜索便宜。
但是,数据并行模型中的简单数组就足够了。

语言能力

由于并行性,我认为Java是一个不错的选择。
但是,任何语言和伪代码也都不错。

前端

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

对于廉价的删除和连续的末尾添加,更好的数据结构是什么?

最佳答案

Java LinkedList似乎是您可以在版本1中使用的东西。您可以使用其单个参数add()在固定时间内追加到列表中。如果“实时”是指图像在用户的显示中并因此以某种方式指向,则也可以在恒定时间内删除它们。
最佳使用内存,而无需像Arraylist那样重新实例化。
在对象(而不是数组)上实现的任何双链表都可以。

您的第二个版本不够清晰。

10-01 23:42
查看更多