N-арное дерево поиска в java с сопоставимым userObject? - PullRequest
2 голосов
/ 19 февраля 2010

Итак, допустим, я строю дерево с помощью javax.swing.tree.DefaultMutableTreeNode и добавляю N дочерних элементов к определенному узлу. Я хочу, чтобы дочерние элементы были в определенном порядке (на основе Comparable / пользовательского Comparator), например, в дереве поиска, даже если я вставил их не по порядку, например:

node.insert(child2);
node.insert(child3);
node.insert(child1);

Но DefaultMutableTreeNode не выполняет никакой подобной сортировки. Для моего конкретного случая я даже знаю желаемый индекс дочернего узла в массиве родителя, но я попробовал DefaultMutableTreeNode.insert и получил много ArrayIndexOutOfBoundsExceptions.

Кто-нибудь может порекомендовать библиотеку, которая делает то, что мне нужно? Или мне придется самому написать дерево поиска?

1 Ответ

1 голос
/ 19 февраля 2010

Как правило, вы вставляете узлы в дерево, чтобы оно оставалось отсортированным для некоторого порядка обхода . Это зависит от топологии дерева. Вы можете получить некоторые идеи реализации от Как использовать деревья, Создание модели данных . В частности, интерфейс TreeModel принимает любой тип объекта в качестве узла дерева. Не требуется, чтобы узлы были представлены объектами DefaultMutableTreeNode или даже чтобы узлы реализовывали интерфейс TreeNode. "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...