【问题标题】:Is there such thing as a parallel linked list?有没有平行链表之类的东西?
【发布时间】:2020-02-18 01:29:38
【问题描述】:

好吧,基本上,我不是要源代码或任何东西,但基本上我正在编写一个奖学金程序,用户可以在其中存储他们感兴趣的所有奖学金。因此,他们输入信息(名称、截止日期、奖励金额等),他们每次想在列表中添加新内容时都会这样做。

至于我的问题,我希望能够有一种排序方法,可以按他们的选择排序,所以按字母顺序,奖励最多的钱等等。我正在尝试用一个链表来做,其中一个列表是名称,另一个是截止日期,以及上面列出的其他内容,但是当我根据一个标准对其进行排序时,如何使另一个列表以相同的方式排序?

这可能是链表的另一种方式,还是我完全错误的方式?

顺便说一句,我知道你可以用数组来做到这一点,但我希望用链表在我的作业中获得额外的分数。

【问题讨论】:

  • 与其为每种类型的数据创建一个单独的列表,不如使用一个列表,其中每个节点保存一个学生的所有数据可能要简单得多。那么你就只有一个列表可以排序了。
  • 不应该太难:如果一个“标准”链表有一个指向“下一个”元素的指针,您需要将指针s合并到“下一个”元素按字母顺序排列”、“货币价值的下一个”、“截止日期顺序的下一个”、。然后,对于链表上的每个常用操作,您必须编写版本来维护所有单独的链。你很快就会放弃,并得出一个结论,一个奖学金表,你可以按你选择的任何列排序,这会是一个更好的主意。
  • 而且,至于以不必要的复杂方式解决问题而获得加分,我对此表示怀疑。

标签: sorting parallel-processing linked-list


【解决方案1】:

Q希望通过链表在我的作业中获得额外分数。

如果你想加分,你可能会提到,这个问题早在半个世纪前就已经解决了,由不亚于查尔斯·摩尔的天才解决,他是唯一一个不必学习 FORTH 的人(因为他创造了它)。

40 年前在 Leo BRODIE 的文章中展示了一张关于在 FORTH 词汇表中实现的多上下文链表的可爱图片,每个上下文都有另一个特定于上下文的链表指针-{PREV|NEXT}(必须-阅读书籍+) - “面向初学者和专业人士的 FORTH 语言和操作系统简介”

对于任何合理的多处理访问,FORTH 中的这种系统级实现是智能且最高效的,无论是简单的 -[CONCURRENT] 还是真正的 -[PARALLEL] 消费者处理(而维护需要某种形式的事务级保护,在指针网络重写期间,不是吗?)

+) 开始 FORTH [Pg.242];里奥·布罗迪

【讨论】:

  • 但插图显示了 3 个单独的链表,尽管它们都存储在一个结构中。每个元素只有一个链接到它自己的列表中的下一个。我认为这是 OP 给我们带来的问题的反转解决方案。
  • @HighPerformanceMark 上下文三通道 很明显,不是吗?当然,FORTH 使用了单独的上下文(因为它们是单独的),但该方案是显而易见的 - 每个项目在任何“共存”的使用上下文中都有 {PREV|NEXT} 指针 - [ 字母顺序,财务排序、截止时间排序、科学价值排序、差旅费相关排序、...、鄂尔多斯数增益排序、...任何其他可能指定的可排序度量、...] 是必要且合理的。在 60 年代后期实施这一点本身就是一个教训,不是吗? :)
猜你喜欢
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 2012-07-07
相关资源
最近更新 更多