我目前正在使用DelegateTree
与JUNG一起制作二叉树可视化应用程序。但是,我找不到明确说明节点应该是左子节点还是右子节点的方法。
最初我认为我只需要使用addChild(edge, parent, child)
并继续以相同的顺序添加节点。后来,我意识到这种方法并不总是有效。起初生成的树似乎是正确的,但是一旦它超过高度3,它就会开始搞乱,并且不会以特定的方式切换节点和最终的整个子树。
答案 0 :(得分:0)
DelegateTree本身并不保证对邻居(子)的迭代有任何特定的排序。如果它的输入图保证了这种排序(参见JUNG: placing tree nodes in order)那么你应该没问题。
您也可以使用OrderedKAryTree:http://jung.sourceforge.net/doc/api/edu/uci/ics/jung/graph/OrderedKAryTree.html
由于您知道特别具有二叉树,因此您还可以创建自己的更有效的实现,假定所有节点都具有< = 2个子节点。