1

alt text http://img377.imageshack.us/img377/3469/86566498.pngКакая структура данных лучше всего представляет эти данные?

Это список списков или просто куча деревьев (лес)?

+3

Звучит как домашнее задание. –

+2

зависит от того, что вы хотите с этим сделать .... –

+0

@Mitch Wheat: Хотите сделать поиск по определенному товару – msvcyc

ответ

1

Зависит от того, что вы хотите с этим сделать. List<LinkedListTree> может работать в общем случае. Если вам нужно представить непересекающиеся множества (например, алгоритм Kruskal MST), вы можете посмотреть на another data structure.

1

Лучшие данные Структура - это дерево (как вы упомянули, лес, так как здесь есть 2). Однако S-выражения могут легко представлять деревья - и S-выражения могут представлять списки списков, которые эквивалентны деревьям.

Вы можете просто принять соглашения для деревьев в виде списка, такие как первый элемент - текущий узел, а следующие элементы - это дети. Используя эту конвенцию первое дерево будет представлено как:

(а1 (а1 (а11 (A111 A112 A113) A112) а12 а13))

Второй по

(а2 (A21 A211) (a22 a221) (a23 (a231 a2311) (a232 a2321)))

И вы также можете принять соглашение о том, что верхний уровень является форстом, поэтому вы просто представляете лес, состоящий из 2 списков выше, как список из двух деревьев.

В случае, если вы не догадались, бывший программист Lisp здесь :)