如何使用给定的节点对(u,v)在java中创建一个简单的无序树(不是BST)?

如何使用给定的节点对(u,v)在java中创建一个简单的无序树(不是BST)?,java,tree,nodes,Java,Tree,Nodes,问题是我不知道如何创建树。我已经阅读了许多树上的代码示例,但我甚至不知道如何使用/处理节点,因此我不理解节点类如何工作(这在所有程序示例中都有)。当我尝试使用appendChild之类的方法(如java文档中所述)时,我得到一个错误,我被要求在主程序中的节点类中创建一个这样的appendChild方法。我不明白为什么会这样 我得到了节点的整数对((u,v)意味着u和v之间有一条边),我还需要知道是否需要任何元素到节点的转换来使用u和v(整数类型)作为节点 请容忍我,因为我的基础薄弱。稍微解释一下

问题是我不知道如何创建树。我已经阅读了许多树上的代码示例,但我甚至不知道如何使用/处理节点,因此我不理解节点类如何工作(这在所有程序示例中都有)。当我尝试使用appendChild之类的方法(如java文档中所述)时,我得到一个错误,我被要求在主程序中的节点类中创建一个这样的appendChild方法。我不明白为什么会这样

我得到了节点的整数对((u,v)意味着u和v之间有一条边),我还需要知道是否需要任何元素到节点的转换来使用u和v(整数类型)作为节点

请容忍我,因为我的基础薄弱。稍微解释一下整个东西是如何工作/起作用的会很有帮助。 多谢各位

编辑1:我浏览了以下链接:(在无序的树上几乎找不到任何东西)。试图修改这些代码以满足我自己的目的,但失败了。 我只有一个模糊的想法,这还不足以实现。我正在尝试制作一个简单的无序树,其中的u-v对如下所示:
(4,5) (5,7) (5,6). 我只需要加入(4嗯,还不完全清楚您是否需要对一般的树创建、您找到的一些树实现进行解释,或者您已经有了无法使用的基本代码。您可能需要澄清:)。 一般来说,也包括树创建: 您将发现的大多数解释和实现可能“过于”优雅:)。因此,首先尝试想象一个简单的链表。在该列表中有节点(列表的元素)。节点包含一些有价值的数据和对其他节点对象的引用。非常简单的树的不同之处在于,一个节点对其他节点有多个引用。例如,它有一组引用,它的“子对象”。 以下是一段非常粗糙的代码,仅作为您案例中addChild()或appendChild的示例:

public class Node {

private String valueableData;
private Set<Node> children;

public Node(){
    this.children=new HashSet<Node>();
}

public Node (String valueableData){
    this.valueableData=valueableData;
    this.children=new HashSet<Node>();
}

public void addChild(Node node){
    children.add(node);
}

}
公共类节点{
私有字符串valueableData;
私人儿童;
公共节点(){
this.children=newhashset();
}
公共节点(字符串valueableData){
此.valueableData=valueableData;
this.children=newhashset();
}
公共void addChild(节点){
添加(节点);
}
}
现在这个实现会非常糟糕(我甚至删除了setter/getter),在某些情况下保留根节点引用也是明智的,等等。但你可能会得到基本的想法


您可能需要创建一个循环或递归来遍历(u,v)整数对。首先创建根节点,然后递归地添加child()所有其他节点,或者先创建每个节点,然后根据规则设置child()。

AFAIK标准Java库中没有“node”类来为树或图形中的节点建模。所以你必须自己动手编写代码。或者,您是否已经在使用一个“Node”类,并且对它的工作方式感到困惑。如果是,请发布代码。@aquaraga感谢您的回复。为了便于理解我的问题,我添加了更多细节:)谢谢您的回复。我确实得到了基本的想法,但是为了便于理解,我添加了更多的细节。请看一看