Дерево, родитель TreeNode и дочерний элемент

Если я правильно понял, дерево обычно представляет собой один список с элементами в определенном порядке. Дети не находятся в собственных подсписках, они все в одном списке.

Итак, я пытаюсь создать класс Tree, который содержит TreeNodes (класс), используя список в классе Tree.

Как мне отслеживать родителей/детей/выходцев? Если у родителя «Родитель 1» есть 2 дочерних элемента «ChildA» и «ChildB», как мне связать их вместе?


person user1121487    schedule 23.09.2013    source источник


Ответы (1)


Нет, я не думаю, что вы все правильно поняли.

Каждый узел обычно хранит список своих потомков.

Затем эти дочерние элементы, в свою очередь, хранят списки своих дочерних элементов и так далее.

Чтобы затем представить дерево, у вас есть только одна переменная узла, указывающая на корень.

Существуют также другие представления, в которых вы, например, сохраняете (двоичное) дерево в массиве, и каждый индекс i указывает узел и его дочерние элементы в позициях 2*i и 2*i+1.

person Bernhard Barker    schedule 23.09.2013