gpt4 book ai didi

java - 用于连续添加和廉价删除的数据结构

转载 作者:行者123 更新时间:2023-12-01 11:43:53 26 4
gpt4 key购买 nike

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

  • 将 png 图像保存到工作目录,并且
  • 将最新视频保存到工作目录。

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

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

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

这可能在并行编程的数据并行模型中运行良好,即在数组中定期结构化的数据集。操作(添加、删除)可以对此数据进行操作,但独立于不同的进程。

为了简单起见,我们假设版本 1 中不需要进行高效搜索。但是,如果您提供的模型也可以做到这一点,我很乐意考虑它 - 我们将其称为版本 2。

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

语言

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

前端

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

什么是更好的数据结构,可以实现廉价的删除和最后的连续添加?

最佳答案

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

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

关于java - 用于连续添加和廉价删除的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29316381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com