k-арные деревья на яве - PullRequest
       16

k-арные деревья на яве

2 голосов
/ 03 марта 2011

Я использую не-пользовательский интерфейс для так называемого "k-ary" дерева в моем Java-приложении, и мне было интересно, был ли пакет javax.swing.tree подходящим инструментом для работы, даже если он был упакован с Swing .

У меня есть класс, скажем, объектов виджетов, которые должны быть организованы в виде дерева. Каждый узел этого дерева виджетов может иметь 0+ детей, и, следовательно, он не обязательно должен быть симметричным.

Мне нужна общая структура Tree / Node, которая позволит мне использовать виджеты или любой другой объект. В частности, мне нужен ход, который выполняет (как минимум) обходы после заказа.

Если я смотрю не в нужной упаковке, может ли кто-нибудь указать мне правильное направление?

1 Ответ

7 голосов
/ 03 марта 2011

Несмотря на то, что вы можете найти этот класс, чтобы делать то, что вы хотите, я чувствую, что он гораздо более тесно связан с JTree , чем вы хотели бы. По общему мнению Google, создание собственного - это быстрое упражнение, которое хорошо окупается - мне удалось найти две разные реализации в нескольких лучших результатах.

Если у вас возникла острая необходимость прокрутить свою собственную, общая идея состоит в том, чтобы определить класс Node с List<Node> детьми. Тогда все, что вам нужно сделать, это предоставить свои собственные методы для таких вещей, как insert, delete и т. Д. Рекурсивный обход пост-заказа так же прост, как и обычный двоичный пост-заказ, за ​​исключением того, что вместо левого-правого-корневого корня вы просто просматриваете список из детей, делающих postorder на каждом, затем итерируйте корень последним.

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