Библиотека Java или алгоритм для вычисления координат узлов дерева / рисования - PullRequest
0 голосов
/ 08 ноября 2010

Я ищу библиотеку, которая выдала бы мне точные координаты каждого узла в дереве (любое дерево, а не только двоичные деревья).

Допустим, я определил деревов следующих обозначениях

(() (() (() () ())) 

И какая-то библиотека дает мне такие координаты:

[500 0]([200 50]() [600 50]([500 100]() [750 100]([600 150]() [700 150]() [800 150]())) 

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

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

Если ничего подобного не существует, anАлгоритм также пригодится , при условии, что он может быть реализован относительно легко.

1 Ответ

0 голосов
/ 08 ноября 2010

Я думаю, что модель Nested Set может вам помочь.

Алгоритм довольно прост и очень эффективен для чтения, хотя обновления дерева немного дороже, поскольку границы узлов должны обновляться каскадным способом. Вот алгоритм, реализованный в SQL .

...