我一直在使用JUNG2(没有任何动画)以图形方式显示AVL树操作
我正在使用OrderedKAryTree
。但是渲染存在一些问题。所有边缘从根到框架的左上角出现。如图所示
screenshot
这是我的可视化代码
vv = new VisualizationViewer<Integer, Integer>(
new TreeLayout<Integer, Integer>(graph),
new Dimension(500, 400));
vv.setBackground(Color.white);
vv.getRenderContext().setEdgeShapeTransformer(
new EdgeShape.Line<Integer, Integer>());
vv.getRenderContext().setVertexLabelTransformer(
new ToStringLabeller<Integer>());
frame.getContentPane().add(vv, BorderLayout.CENTER);
frame.getContentPane().validate();
我无法弄清楚为什么会这样。此外,如果我使用DelegateTree
,相同的代码也能完美地工作,尽管没有实现排序。
请帮忙。提前谢谢!
答案 0 :(得分:0)
找到解决方案。而不是OrderedKAryTree
使用DelegateTree
和DirectedOrderedSparceGraph
以下是图表的初始化方式:
DelegateTree<V, E> graph = new DelegateTree<V, E>(
new DirectedOrderedSparseMultigraph<V, E>());
V和E可以是任何Object
。
这不能解决OrderedKAryTree
错误渲染的问题,但它肯定可以帮助您显示二叉搜索树。