哪种数据结构最能代表这些数据?

时间:2009-07-31 11:29:21

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

alt text

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

最佳数据结构是一棵树(如你所提到的,森林,因为这里有2个)但是,S表达式可以很容易地表示树 - 而S表达式可以表示列表的列表,它们等同于树。

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

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

第二个

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

你也可以采用最高级别为forst的约定,所以你只需要将上面2个列表组成的森林表示为2棵树的列表。

如果你没猜到,这里的前任Lisp程序员:)