javajung图包中的二叉树

javajung图包中的二叉树,java,binary-tree,jung,Java,Binary Tree,Jung,我试图在JUNG(一个Java图形包)中创建二叉树。然而,我无法做到这一点 以下是我的资料来源: Tree tree1 = new OrderedKAryTree<String, Integer>(2); tree1.addVertex("v0"); tree1.addEdge(1, "v0", "v1"); tree1.addEdge(2, "v0", "v2"); 在中,我看到一个重载方法addEdge()将一个名为index的整数参数作为第四个参数。但是,在我的机器上似乎没有

我试图在JUNG(一个Java图形包)中创建二叉树。然而,我无法做到这一点

以下是我的资料来源:

Tree tree1 = new OrderedKAryTree<String, Integer>(2);
tree1.addVertex("v0");
tree1.addEdge(1, "v0", "v1");
tree1.addEdge(2, "v0", "v2");
在中,我看到一个重载方法
addEdge()
将一个名为index的整数参数作为第四个参数。但是,在我的机器上似乎没有实现

这将创建高度为1的二叉树。我也尝试过在边之前添加顶点:

tree1.addVertex("v0");
tree1.addVertex("v1");
tree1.addVertex("v2");
tree1.addEdge(1, "v0", "v1");
tree1.addEdge(2, "v0", "v2");
以下是我得到的一个例外:

java.lang.IllegalArgumentException: 'index' must be in [0, [order-1]]
java.lang.UnsupportedOperationException:
    Unless you are setting the root, use addEdge() or addChild()
奇怪的是,中没有
addChild()
方法(我假设
addChild()
是包的旧版本的一部分,并且在最新更新中没有删除)


创建一个小的二叉树应该不难!有人能帮忙吗?

这门课上似乎有好几个学生,我认为没有多少发展还在继续。您可以尝试在本地版本中为自己的目的修复它(您可以在网站上找到源代码),甚至可以将它们提交给社区。

对于树,您需要使用setRoot和addChild函数


DelegateTree=newdelegatetree();
树毛根(“A”);
树。addChild(“A-B1”、“A”、“B1”);
addChild(“A-B2”、“A”、“B2”);
BasicVisualizationServer vs=新的BasicVisualizationServer(
新布局(树),新尺寸(1100640);
Transformer vertexPaint=新的Transformer(){
公共绘制转换(字符串i){
返回颜色:灰色;
}
};  
RenderContext RenderContext=vs.getRenderContext();
renderContext.setVertexFillPaintTransformer(顶点绘制);
变压器=新ToStringLabeller();
renderContext.setEdgeLabelTransformer(transformer);
变压器垂直变换器=新ToStringLabeller();
renderContext.setVertexLabelTransformer(vertexTransformer);
vs.getRenderer().getVertexLabelRenderer().setPosition(Position.CNTR);
JFrame=新JFrame();
frame.getContentPane().add(vs);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);

谷歌代码仍在开发中:也就是说,这段代码至少有一个bug(和至少一个文档错误),需要修复。很高兴听到仍在开发中。我只是觉得这个项目被搁置了,因为最后一次提交是在四月份。考虑到证据,你的结论是合理的。一些事情正在幕后进行,但尚未落实。:)我正在尝试构建类似的东西,我很好奇你是否能找到一个解决方法,或者你是否与其他图书馆合作过?
    DelegateTree<String, String> tree = new DelegateTree<String,String>();
    tree.setRoot("A");
    tree.addChild("A-B1", "A", "B1");
    tree.addChild("A-B2", "A", "B2");

    BasicVisualizationServer<String, String> vs = new BasicVisualizationServer<String, String>(
            new FRLayout<String,String>(tree), new Dimension(1100, 640));


     Transformer<String,Paint> vertexPaint = new Transformer<String,Paint>() {
            public Paint transform(String i) {
                return Color.GRAY;
            }
        };  



        RenderContext<String, String> renderContext = vs.getRenderContext();
                renderContext.setVertexFillPaintTransformer(vertexPaint);

            Transformer<String, String> transformer = new ToStringLabeller<String>();
            renderContext.setEdgeLabelTransformer(transformer);
            Transformer<String, String> vertexTransformer = new ToStringLabeller<String>();
            renderContext.setVertexLabelTransformer(vertexTransformer);
            vs.getRenderer().getVertexLabelRenderer().setPosition(Position.CNTR);



            JFrame frame = new JFrame();
            frame.getContentPane().add(vs);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);