首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java树数据结构的实现

Java树数据结构的实现
EN

Stack Overflow用户
提问于 2016-12-06 16:06:55
回答 1查看 2.8K关注 0票数 2

有人能给我介绍一下标准、经过测试的简单树实现吗?

例如,对Java树的所有StackOverflow搜索都导致了这个主题,即Tree implementation in Java (root, parents and children)

但是你会发现这个话题中被接受的答案不起作用,并给出了一个溢出异常(https://stackoverflow.com/a/40622616/1005607) --非常危险,也许有人应该删除或编辑这个答案,或者至少把它向下移动。

有一些非StackOverflow资源,但是我再次不知道它们有多可靠,http://programtalk.com/java/java-tree-implementation/

我很难相信没有可重用的、健壮的实现,我们可以快速地进行。节点应该跟踪它的父节点和子节点。不应该有错误。

EN

回答 1

Stack Overflow用户

发布于 2016-12-06 16:15:09

您所展示的问题(https://stackoverflow.com/a/40622616/1005607)的问题是,addChildsetParent方法在一个无限循环中相互调用。

代码语言:javascript
复制
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);
}

您需要按以下方式修改它:

代码语言:javascript
复制
// 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);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40999772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档