【问题标题】:Which data structure best represents this data?哪种数据结构最能代表这些数据?
【发布时间】:2009-07-31 11:29:20
【问题描述】:

这是一个列表列表还是只是一堆树(森林)?

【问题讨论】:

  • 取决于你想用它做什么......
  • @Mitch Wheat:想要查找特定项目
  • @S.Lott: 为什么会这样?该问题不要求任何实现或示例源代码?
  • 听起来像是作业,因为这是我在高级数据结构课程中提出的问题。没有酷炫的图形。

标签: list data-structures tree linked-list data-representation


【解决方案1】:

取决于你想用它做什么。 List<LinkedListTree> 在一般情况下可能有效。如果您需要表示不相交的集合(如 Kruskal 的 MST 算法),您可能需要查看 another data structure

【讨论】:

    【解决方案2】:

    最好的数据结构是一棵树(正如你提到的,一片森林,因为这里有 2 个)但是,S 表达式可以很容易地表示树 - 而 S 表达式可以表示列表的列表,这相当于树。

    您可以只采用列表形式的树的约定,例如第一个元素是当前节点,后面的元素是子节点。使用此约定,第一棵树将表示为:

    (a1(a1(a11(a111 a112 a113)a112)a12 a13))

    第二个

    (a2 (a21 a211)(a22 a221)(a23 (a231 a2311)(a232 a2321)))

    您还可以采用顶层是森林的约定,因此您只需将由上述 2 个列表组成的森林表示为 2 个树的列表。

    如果你没猜到,这里是一位前 Lisp 程序员 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多