【发布时间】:2020-04-21 21:46:23
【问题描述】:
我正在努力想出一种算法,该算法允许我绘制树状数据结构,其中每个节点可以有 0..n 个子节点。 我的问题是,我不知道我必须将节点放置多远才能使子节点不会重叠。
在本例中,“d”是“b”的子代,“g”是“e”的子代,当我将子代均匀分布在其父代之上时,它们在 x 轴上重叠树的宽度。
g g g g g g g g (9 nodes)
\ \ \ \ | / / /
d d d d d d d d d e (10 nodes)
\ \ \ \ / / / / / |
b c (2 nodes)
\ /
a (1 node)
节点不以任何方式排序。所以它实际上更像是一个看起来像一棵树的图表。
【问题讨论】:
-
您能否具体说明您如何定义重叠?在您的示例中,您想要 10 列还是 18 列(= 9 g's + 9d's)?
-
我想要18个。这样所有“g”的x坐标都大于“d”的x坐标。
-
是的,你的回答让我走上了正轨。非常感谢!
标签: graph tree draw graph-algorithm