java - 在Java中插入树

标签 java tree

在 Java 文件中,我有以下代码:

MyTree atree = new MyTree();
atree.insert(1);

这不是一棵普通的树。 “atree”是根节点。该树中的每个节点都有 5 个子节点,所有子节点最初都设置为 null。 insert 的参数是您要“激活”的子项,即使其非空。所以我在 MyTree 类中有一个方法可以执行此操作:

public void insert(int i)
{
    if(i == 1)
    {
        MyTree current = this.getChildOne();
        current = new MyTree();
    }
}

调用该函数后,我检查调用该函数的文件中的第一个节点。

if(atree.getChildOne() == null)
{
    return -1;
}

并且它总是返回负数。我怀疑插入函数实际上是在“atree”的副本上工作,而不是在实际的“atree”上。但我并不完全确定。有人有解释吗?

最佳答案

您似乎没有在任何地方分配子级。代码

MyTree current = this.getChildOne();
current = new MyTree();

不分配子一。您初始化了一个局部变量 current,但该变量在方法结束时会丢失。

我认为您可能想在插入方法中执行类似的操作

if ( i == i ) {
   this.childOne = // assign it here
}

关于java - 在Java中插入树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995183/

相关文章:

java - 构建 GCM 演示服务器应用程序时遇到问题

java - 标题复合

java - SWT 中工具提示的可见性

javascript - d3 力导向树单击节点时显示 NaN

algorithm - Minimax算法讲解

java - Jaxb如何抑制tagName但获取值

java - 我可以确保我的 Spring ApplicationListener 之一最后执行吗?

php - 如何处理一个大的 mySQL 树

java - 带有继承的 JPA 映射树结构

algorithm - 树数据结构的高效删除