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