【问题标题】:Which of the following is a better solution? It's about using a list to store RGB values以下哪个是更好的解决方案?这是关于使用列表来存储 RGB 值
【发布时间】:2017-06-14 09:34:52
【问题描述】:

我想使用单链表来存储由 RGB 像素组成的图像。列表中的节点应包含 RGB 的值及其连续出现的时间。例如,我有一个包含 4 个像素的图像,它们的 (R,G,B) 值为 (8,2,5),(8,2,6),(8,7,6) 和 (8,7, 9)分别。在这种情况下,如果使用单链表来更紧凑地存储它们,节点应该存储以下信息: 红色需要一个节点:值8,重复次数4(因为有四个连续的8)。 绿色需要两个节点:第一个节点(值:2,重复 2),第二个节点(值:7,重复 2) 蓝色需要三个节点:第一个节点(值 5,重复 1),第二个节点(值:6,重复 2)第三个节点(值 8,重复 1)

我想知道以下哪个更好:

1.使用一个包含3个头的单链表分别指向R、G和B节点。这意味着存储 R、G 和 B 存储在 3 个不同的节点序列中。

2.使用一个单链表,它只包含一个head,但节点的内容必须是一个数组来存储RGB。这意味着 R、G 和 B 组合为一个包含 3 个元素(R、G、B)的数组,并且这些数组存储在一个节点序列中。

我认为第一个解决方案更容易实现,但似乎需要更多空间(创建更多节点)。第二种可能存在潜在问题,因为 R、G 和 B 所需的节点数不一样。

【问题讨论】:

  • 出于性能原因,我会使用一个三维数组,例如 count[r][g][b] = x;我并没有完全理解你的要求,虽然就像你所说的连续发生的时间一样。
  • 什么是heads?您可以为两种不同的情况制作 Node 类吗?另外你的标准是什么?为什么提到频率信息?例如。 844 呢。
  • 很抱歉我之前没有清楚地解释我的问题。对于 844,需要两个节点,第一个节点应分别包含 (8,1) 值 8 和重复次数 1。对于值 4 和重复 2,第二个节点应该是 (4,2)。
  • @Satish 感谢您的回答。抱歉,我没有清楚地解释我的问题。现在我对其进行了更新,使其更加清晰。

标签: java linked-list nodes


【解决方案1】:

如果您的目标是压缩图像,您应该真正考虑标准压缩技术。我感觉以这种方式压缩和解压缩图像不会很有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多