在 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/