【问题标题】:What is a practical, real world example of the Linked List?什么是链表的一个实际的、真实的例子?
【发布时间】:2010-10-13 06:01:00
【问题描述】:

我了解链表的定义,但如何表示它并将其与一个常见的概念或项目相关联?

例如,OOP 中的组合(编辑:最初说“继承”)可以与汽车有关。现实生活中的所有(大多数)汽车本质上都是一样的。汽车有一个引擎,你可以启动()它,你可以让汽车去(),停止()等等。汽车通常具有最大载客量,但在公共汽车和跑车之间会有所不同,这两种汽车都是汽车。

有没有一些真实的、直观的简单的 ole' 单链表示例,就像我们在继承中所拥有的一样?典型的教科书链接列表示例显示了一个带有整数的节点和指向下一个的指针,它似乎并不是很有用。

感谢您的意见。

【问题讨论】:

  • 您将继承与组合混淆了。您自己说过:汽车 has_an 引擎,而不是 is_an 引擎。
  • 我并不困惑。引擎将在汽车类中声明并在巴士或跑车类中继承。此外,这篇文章不是关于继承的。
  • 如果您不感到困惑,那么您的文字就是。您提到了组合的教科书示例,而不是继承。稍后添加属性继承的示例。不过,我明白这个问题是关于什么的,而且很有趣。这就是我不反对它的原因。
  • 这个例子意味着汽车接口有一个getEngine()方法和一个start()方法。这是一个接口/继承的例子。
  • 您是否要求进行类比,类似于普通(但我认为有缺陷)汽车 继承?还是使用链表的编程问题?

标签: collections linked-list car-analogy


【解决方案1】:

考虑 2 个或更多具有 2 个或更多隔间的盒子。 (在此示例中,每个盒子将有 2 个隔间) 第一个隔间将包含一些信息。一个数字或一个词。 第二个隔间将包含一个指向下一个框的箭头,依此类推。

请注意,每个盒子可以包含多个隔间,其中包含箭头(指针)和信息(数据)。

【讨论】:

    【解决方案2】:

    他们一直在学前班的孩子们这样做。当他们在户外的路上或类似的地方时,每个孩子都被要求握住其他几个孩子的手。每个孩子都知道他或她应该握住谁的手。他们就这样过马路。我认为这是一个典型的双向链表示例。

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 2019-06-04
      • 2010-12-03
      • 2017-02-17
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 2021-10-07
      • 1970-01-01
      相关资源
      最近更新 更多