我有一个程序,我有一棵树。我将节点及其边放在NodeList和EdgeList中。然后将列表放在DirectedGraph中,然后我通过DirectedGraphLayout.visit()运行。
我现在将节点和边缘放在屏幕上。该图几乎是完美的,但是有些不一致的节点出现故障。
第一张如下图所示。正如您所看到的,它放置了parent1的几个子节点,然后从parent2放置一些节点。然后由于某种原因,我无法弄清楚它将父母1的最后一个孩子放在父母2的孩子的右边。
下一个问题是父母的孩子出了问题。当孩子们应该按顺序放置时:1 2 3 4,他们将被安排在不同的顺序,如:2 3 1 4.
我尝试将节点添加到NodeList是不同的命令,尝试post和pre命令递归来解析我的树。我最终获得完全相同的定位。
我对如何解决这个问题感到茫然。任何关于DirectedGraph如何工作的提示以及它为什么放置这样的节点都是值得赞赏的。
答案 0 :(得分:0)
来自DirectedGraphLayout文档,
[布局算法将]分配x坐标,以便图表易于阅读。确切的行为是未定义的
进一步向下
不保证此类为每次调用生成相同的结果。
所以我猜没有办法去修复"这是因为行为未定义。