一尘不染

树的可视化算法

algorithm

是否有一些用于树数据结构可视化的算法?我尝试使用Google搜索,但找不到任何内容。我敢肯定,对于这个不是那么简单的任务,必须要有一些算法。还是有人有想法?


阅读 447

收藏
2020-07-28

共1个答案

一尘不染

假设:您希望每个节点都在其子节点上方居中显示。

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

这导致:

width = 1 + sum(widths of children's nodes)

因此,在树中进行深度优先遍历以计算每个节点的宽度。要进行显示,请进行广度优先遍历,以逐级绘制树。

这是如何做的粗略想法。您可能要根据要渲染树的方式的细节来调整宽度计算。

2020-07-28