我正在寻找一个能够在树中提供每个节点的精确坐标的库(任何树,而不仅仅是二叉树)。
假设我用以下符号定义树
(() (() (() () ()))
有些图书馆给我这样的坐标:
[500 0]([200 50]() [600 50]([500 100]() [750 100]([600 150]() [700 150]() [800 150]()))
或唯一表示树的任何其他表示法。
这种库可以实现节省空间的树木绘制,还可以解决节点和链接重叠的问题。例如,如果树是一个列表infact,我希望该库考虑到这一点,并在单个列或行中安排节点,以节省空间。
如果不存在任何相似之处,算法也会派上用场,前提是它可以相对容易地实现。
答案 0 :(得分:0)
我认为Nested Set模型可能会对您有所帮助。
该算法相当简单,并且对于读取非常有效,尽管对树的更新稍微贵一些,因为节点的边界必须以级联方式更新。 Here is the algorithm implemented in SQL