![]() |
|
![]() ![]() ![]() |
|
SavotinArtem |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Здравствуйте!
Есть вопрос: Меня интересует алгоритм визуализации небинарного дерева на 2х мерной плоскости. Кто-нибудь может написать просто название алгоритма или предложить идеи. Я хочу получить что то типо как: http://www.yworks.com/products/yfiles/doc/...reeLayouter.gif Я уже реализовал такой алгоритм но он очень сложный и при большом количестве элементов долго пересчитывается. Вот пример моего алгоритма(возможно я придумываю велосипед, но в гугле ничего не нашел по этому пришлось придумывать свое): Т.е. к примеру у меня есть небинарное дерево: Я обозначаю root дерева как 0, далее иду по дереву и обозначаю элементы как -1 0 1, -2 -1 0 1 и.т.д т.е. в конце концов я работая с двухмерным массивом: 0 -1 0 1 -2 -1 1 0 0 -1 0 1 вычисляю пересечения и двигаю ветви влево или вправо рекурсивно и т.д. Но это слишком сложный алгоритм и занимает много вычислительного времени, по этому я ищу более простой алгоритм, желательно в один два обхода. Спасибо! |
|||
|
||||
nostromo |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 23.3.2006 Репутация: 5 Всего: 10 |
Кажется, можно предложить алгоритм в два рекурсивных обхода.
Сначала для каждого узла считаем "ширину" соответствующего поддерева (как самму ширин дочерних поддеревьев. Ширину бездетного узла полагаем равной 1), а вторым обходом собственно размещаем относительно заданной точки. --------------------
На пыльных тропинках далеких планет останутся наши следы. |
|||
|
||||
belonesox |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 21.4.2006 Где: Moscow Репутация: нет Всего: 1 |
Возможно не стоит изобретать велосипед, а стоит посмотреть исходники Graphviz (русскоязычное описание)?
Т.е. планаризация ориентированных и неориентированных графов. |
|||
|
||||
SavotinArtem |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 4.5.2006 Репутация: нет Всего: нет |
Это Супер!
Я думаю что это то что я искал, большое спасибо! ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |