Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Визуализация небинарного дерева, Самый быстрый алгоритм 
:(
    Опции темы
SavotinArtem
Дата 4.5.2006, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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

вычисляю пересечения и двигаю ветви влево или вправо рекурсивно и т.д.

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

Спасибо!
 
PM MAIL   Вверх
nostromo
Дата 4.5.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 194
Регистрация: 23.3.2006

Репутация: 5
Всего: 10



Кажется, можно предложить алгоритм в два рекурсивных обхода.
Сначала для каждого узла считаем "ширину" соответствующего поддерева (как самму ширин дочерних поддеревьев. Ширину бездетного узла полагаем равной 1),
а вторым обходом собственно размещаем относительно заданной точки.
 
--------------------
На пыльных тропинках далеких планет останутся наши следы.
PM MAIL   Вверх
belonesox
Дата 4.5.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 21.4.2006
Где: Moscow

Репутация: нет
Всего: 1



Возможно не стоит изобретать велосипед, а стоит посмотреть исходники Graphviz (русскоязычное описание)? 
Т.е. планаризация ориентированных и неориентированных графов.  
PM MAIL WWW   Вверх
SavotinArtem
Дата 4.5.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 4.5.2006

Репутация: нет
Всего: нет



Это Супер!
Я думаю что это то что я искал, большое спасибо!
smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0999 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.