我正在进行分布式算法的可视化,该算法解决树相关的问题。
我需要绘制一颗给定的根树。
目前,我只能处理每个节点最多有两个子节点的情况。在这种情况下,对于每个节点 v
,我会将其绘制为一个圆,坐标为 (x(v), x(y))
,其中:
x(v) := index of v in the inorder traversal
y(v) := distance from v to the root
这个方法对于二叉树运行良好(当然,树的宽度相当大,但这并不太困扰我),但对于大多数普通树而言就不行了。
请建议我应该使用什么算法来处理普通树。我唯一的要求是绘制出来的图必须是平面的。
编辑:
the simpler algorithm is to implement, the better