树可视化算法

MrP*_*per 6 algorithm tree visualization

树数据结构可视化是否有一些算法?我试过谷歌搜索,但无法找到任何.我很确定必须有一些算法,而不是那么简单的任务.或者任何人都有一些想法?

mbe*_*ish 7

假设:您希望显示每个节点,使其在子节点上方居中.

为此,计算每个节点的宽度,我将其定义为显示此节点的整个子树所需的水平空间量,使其不与其左侧或右侧兄弟树的子树重叠.

这导致:

width = 1 + sum(widths of children's nodes)
Run Code Online (Sandbox Code Playgroud)

因此,通过树进行深度优先遍历来计算每个节点的宽度.要显示,请执行广度优先遍历以逐级绘制树级别.

这是如何去做的粗略想法.您可能需要根据要渲染树的详细信息来调整宽度计算.