1

我想从我已经聚集并保存在(离开)树中的对象中绘制树状图。我在 Java 中的 Cluster 对象可以用这些图片来表示。每个叶子包含一个对象,每个节点包含其子节点之间的距离。

http://i.stack.imgur.com/6nktv.png

现在,我想逐步绘制一个树状图,所以首先应该绘制对象 1 和 2,然后应该将对象 3 添加到其中。然后 5 和 6 一起等......直到一切都连接起来。我已经拥有所有工具来轻松绘制它,但我找不到正确穿过树的有效方法。

这应该是示例中到目前为止的结果(编辑:有一个错误,从 5 到 6 的距离现在看起来小于从 3 到 1&2 的距离,但在我的示例中并非如此!): http://i.stack.imgur.com/gecAF.png

有人对这种递归算法有一些提示吗?

4

1 回答 1

0

您首先渲染深度 - 您可能会发现您需要跟踪深度以使布局正常工作 - 还要注意您还必须绘制非终端注释(“*”在 3 之前绘制)

基本上

draw(node)
{
   if(hasleft) draw(left)
   if(hasright) draw(right)
   drawme()
}

这确实假设一棵二叉树,但这就是您绘制的内容-由于布局问题,这将变得更加复杂-您真的想首先考虑从上到下绘制宽度,它使布局少了很多痛苦

于 2012-06-25T18:56:40.783 回答