【问题标题】:In which algorithms or circumstances is linked list the only option?在哪些算法或情况下,链表是唯一的选择?
【发布时间】:2017-02-04 08:02:06
【问题描述】:

根据 Bjarne Stroustrup said 的说法,由于几个原因,我们必须避免使用链表。无论链表有多糟糕,例如缓存未命中和预取问题,在算法或情况下,链表是唯一的选择或至少更容易适应真实的情况?

【问题讨论】:

  • 以 Java 为目标的线程,但其中很多都适用于一般情况:stackoverflow.com/questions/322715/…
  • @Thilo 线程没有给出链表优于其他数据结构的任何可能算法。
  • 这是另一个相关主题:stackoverflow.com/questions/7496251/…
  • 我相信在选择数据结构时总会有几个选项,而不仅仅是一个。它主要是关于了解每个数据结构的特定性能特征,然后选择适合您情况的选项。话虽如此,我自己可能已经有超过 15 年没有使用(双重)链表了。我几乎在每一种情况下都找到了更好的数据结构。
  • 我一直使用doubly connected edge lists 进行平面图算法。不确定这是否算作一个链表,并且可能有替代数据结构来表示它,但它仍然是我的首选。

标签: algorithm linked-list


【解决方案1】:
  • 我想任何类型的惰性列表(其尾部会根据需要进行评估)只能作为链表完成(除非您已经碰巧事先知道长度)。

    李>
  • (单)链表可以是循环的(完全循环或在“尾部”)。

  • 多个(单)链表可以为它们的尾部共享内存。

【讨论】:

  • 这个答案在没有评论的情况下被否决是有原因的吗?
猜你喜欢
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-09
  • 2021-11-27
相关资源
最近更新 更多