Java树数据结构的实现

Java树数据结构的实现,java,algorithm,tree,Java,Algorithm,Tree,有人能告诉我Java中标准的、经过测试的、简单的树实现吗 例如,Java树上的所有StackOverflow搜索都指向此主题, 但随后您发现该主题中已接受的答案不起作用,并给出了溢出异常()——非常危险,可能有人应该删除或编辑该答案,或者至少将其向下移动 有一些非堆栈溢出资源,但我不知道它们有多可靠, 我发现很难相信没有可重用的健壮实现可以快速实现。节点应跟踪其父节点和子节点。应该没有错误。您显示的问题()的问题是方法addChild和setParent在无限循环中相互调用 public v

有人能告诉我Java中标准的、经过测试的、简单的树实现吗

例如,Java树上的所有StackOverflow搜索都指向此主题,

但随后您发现该主题中已接受的答案不起作用,并给出了溢出异常()——非常危险,可能有人应该删除或编辑该答案,或者至少将其向下移动

有一些非堆栈溢出资源,但我不知道它们有多可靠,


我发现很难相信没有可重用的健壮实现可以快速实现。节点应跟踪其父节点和子节点。应该没有错误。

您显示的问题()的问题是方法
addChild
setParent
在无限循环中相互调用

public void setParent(Node<T> parent) {
    parent.addChild(this);  // Call addChild
    this.parent = parent;
}

public void addChild(Node<T> child) {
    child.setParent(this);   // Call setParent
    this.children.add(child);
}
public void setParent(节点父节点){
parent.addChild(this);//调用addChild
this.parent=parent;
}
公共void addChild(节点子节点){
setParent(this);//调用setParent
this.children.add(child);
}
您需要按如下方式对其进行修改:

// Make this method private
private void setParent(Node<T> parent) {
    // Remove this line to prevent the loop
    // parent.addChild(this);
    this.parent = parent;
}

public void addChild(Node<T> child) {
    child.setParent(this);
    this.children.add(child);
}
//将此方法设为私有
私有void setParent(节点父节点){
//拆下此管路以防止环路堵塞
//parent.addChild(this);
this.parent=parent;
}
公共void addChild(节点子节点){
child.setParent(this);
this.children.add(child);
}

我使用了Mark Allen Weiss的Java数据结构和算法分析,在tree部分有一个很好的tree实现