如何绘制树形结构?(二维空间分配树递归算法?)

fle*_*esh 6 algorithm graphics tree visualization data-structures

我有一个任意的节点树结构.我想绘制这个树,为用户提供可视化表示.我需要在树上进行递归,并为每个节点添加一个图形项到列表,然后只需在树递归完成后绘制项列表.项目的递归和绘制当然是微不足道的 - 如何定位图形节点以使它们不与其他分支重叠,这有点复杂.

我正在使用Android但这并不重要 - 我正在寻找一种方法,可能是一种算法,当它通过树时可以保持2D空间的图像,因此它只为每个节点分配最合适的坐标通行证.

有任何想法吗?

更新

这是具有最佳和最完整算法的文章.

Jay*_*ren 4

我会尝试沃克算法。 这是一篇关于该算法的学术论文。如果您想查看代码,请查看Prefuse中的NodeLinkTreeLayout。Prefuse 是开源的,因此只要您遵守许可证条款,根据您的情况调整代码就不会有任何问题。

  • 最后我使用了 Buchhiem 的 Walker's 版本。谢谢 (2认同)