-1

你好 stackoverflow 社区,

我有以下问题。假设我有一棵树,其中每个节点都有可变数量的子节点(其中叶子当然有 0 个子节点,其他节点有 1 个子节点,基本上是无限子节点)。我想使用 SWT 绘制这棵树。我一般不想知道如何用 SWT 进行绘制,而是如何确定在哪里绘制每个节点。我最想要的是父节点以子节点为中心,并且在兄弟节点之间有足够的空间,这样他们的子节点就不会相互碰撞。我的大脑不会想出一个算法来确定位置。我希望这里有人可以提供帮助。

提前致谢!干杯,帕特里克

4

3 回答 3

0

您可以进行广度优先搜索。在每个级别上,学习该级别中节点的数量,然后进行计算并绘制它们,然后移动到树上的下一个级别,依此类推。

于 2013-05-01T16:52:01.460 回答
0

我想按照以下步骤找出绘制树的界限。

  1. 您需要知道树中叶节点 (n) 的数量(正确居中父节点)
  2. 您需要知道树的深度 (d)。
  3. 为树的每个级别指定垂直间距 (vs)、水平间距 (hs) 等参数。
  4. 实现org.eclipse.swt.widgets.Layout并计算每个级别的节点边界
于 2013-05-01T21:31:04.377 回答
-1

想想任何操作系统中的文件树。它的确切情况。看看http://www.apl.jhu.edu/~hall/java/Swing-Tutorial/Swing-Tutorial-JTree.html看看如何实现一个!不确定您是在寻找如何实现它还是自己绘制它,但我不建议您自己绘制它。

于 2013-05-01T16:50:57.847 回答