有人能给我介绍一下标准、经过测试的简单树实现吗?
例如,对Java树的所有StackOverflow搜索都导致了这个主题,即Tree implementation in Java (root, parents and children)
但是你会发现这个话题中被接受的答案不起作用,并给出了一个溢出异常(https://stackoverflow.com/a/40622616/1005607) --非常危险,也许有人应该删除或编辑这个答案,或者至少把它向下移动。
有一些非StackOverflow资源,但是我再次不知道它们有多可靠,http://programtalk.com/java/java-tree-implementation/
我很难相信没有可重用的、健壮的实现,我们可以快速地进行。节点应该跟踪它的父节点和子节点。不应该有错误。
发布于 2016-12-06 16:15:09
您所展示的问题(https://stackoverflow.com/a/40622616/1005607)的问题是,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);
}您需要按以下方式修改它:
// 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);
}https://stackoverflow.com/questions/40999772
复制相似问题