alt text

Второй день сижу и смотрю на эту картинку, исписал сотню листов, но узнать, как добиться подобного так и не смог.

Дано: все то, что изображено на картинке.

А требуется построить точно такое дерево, то есть узнать координаты всех узлов и листьев.
По сути, нужно придумать алгоритм, который подойдет для расчетов обычных ситуаций (это когда нет узлов, только листь) и необычных ситуаций (это когда вертикальное расстояние больше установленного по умолчанию, как например b-root и c-root и когда вроде похожая ситуация с f-root, но, как видно, в этом случае расстояние между листьями остается по умолчанию).

А вообще буду рад любой подсказке, так как сам уже не знаю что думать...

UPD:

Смысл условных обозначений (цветные точки) лишь в том, что они указывают на заранее заданные свойства. Например, между листьями a-a и a-c обязательно должно быть расстояние помеченного зеленой точкой. Что, в свою очередь, заставляет точки от a-root до d-root изменить заранее установленное значение помеченного синий точкой.

Если описать само дерево, то пока оно самое обычное - узел имеет ссылки на своих детей, дети имеют ссылку на своего родителя. Для расчета я использую рекурсивный обход. Узел всегда должен быть в центре от своих крайних ветвей. Количество узлов неограниченно. Так же все узлы-листья имеют свойство со значением своей глубины (вертикального ряда).

Спрашивайте ещё, если непонятно.

UPD 1:

Дано: расстояние понимается в обычном смысле. Известны координаты только точки root. Листья удалены друг от друга на расстоянии равному отрезку "b". В случае если листья начинают накладываться друг на друга, то последний лист должен быть удален от первого на расстоянии отрезка "a", как в случаи с a-a узел, у которого a-root, и a-d узел, у которого d-root. Так же каждый лист-узел хранит значения глубины-уровня. Горизонтальное рассояние между листьями равняется значению отрезка "c".

задан 12 Апр '15 23:31

изменен 13 Апр '15 16:16

%D0%92%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%BD%D0%B0's gravatar image


9917

А каков смысл условных обозначений? Что значит, что из вершины e-root идут соединения в a-d, b-d и так далее? Также непонятно, почему это всё является деревом, если есть какие-то дополнительные связи между вершинами одного уровня.

Вообще, хотелось бы словесного объяснения ситуации, потому что уровня пиктограмм недостаточно.

(12 Апр '15 23:38) falcao

Непонятное всё равно остаётся. Прежде всего, в каком смысле понимается расстояние? Как расстояние в графе, или же считается, что дерево изображено на плоскости, и расстояние понимается в обычном смысле? Также в условии есть цветные точки, но им не соответствуют никакие конкретные числа.

Далее, непонятен смысл обозначений типа a-d. Что эта символика означает? Почему к ним идут соединения от "корня" e? Я бы понял, если бы они все шли от a, и потом разветвления бы помечались парой букв.

Вообще, описание должно быть полным, чтобы ни до чего не требовалось догадываться.

(13 Апр '15 0:33) falcao

Дописал, старался, но если что-то не понятно - спрашивайте. И спасибо. И рисунок тоже перерисовал.

(13 Апр '15 13:20) shatal
10|600 символов нужно символов осталось
Знаете, кто может ответить? Поделитесь вопросом в Twitter или ВКонтакте.

Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×5,025
×4,027
×273

задан
12 Апр '15 23:31

показан
604 раза

обновлен
13 Апр '15 13:20

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru