Хотите создать эффективный способ отображения недвоичной древовидной структуры - PullRequest
2 голосов
/ 28 апреля 2019

Я работаю над созданием генетического алгоритма для проекта класса в Python. Алгоритм работает отлично, но я хочу создать изображение дерева, а не просто вывод текста. Я написал функцию, которая хорошо работает для деревьев примерно до 4 уровней. Кроме того, дисплей не работает хорошо, и там заканчивается слишком много пустого пространства. Я знаю почему, но мне может потребоваться слишком много времени, чтобы найти лучшее решение.

Кто-нибудь знает, существует ли функция для создания компактного недвоичного отображения дерева? Я ищу тот, который регулирует каждую ветвь так, чтобы между ними не было тонны пустого пространства, учитывая, что большая глубина ветвей неравномерна. Я нашел много функций отображения двоичного дерева, но это не работает, потому что у некоторых из моих узлов есть 3 дочерних элемента.

Вы можете видеть, что он работает хорошо и плохо работает на изображениях.

Прилично выглядящее дерево: https://drive.google.com/file/d/1j2BQjanTDgvzttedUyhxnbWhkXuQwyaG/view?usp=sharing

Не очень большое дерево (слишком много пустого пространства): https://drive.google.com/file/d/1Gh90e3JvAeCB_U2NhvvouZulM4CVQ8ZH/view?usp=sharing

Заранее спасибо.

1 Ответ

0 голосов
/ 28 апреля 2019

Используйте graphviz .В частности, генератор макетов dot должен хорошо соответствовать вашим потребностям.

Также вам может пригодиться модуль NetworkX рисунок .

...