gpt4 book ai didi

java - 创建树并添加值

转载 作者:行者123 更新时间:2023-12-01 05:45:07 25 4
gpt4 key购买 nike

嘿伙计们,我已经实现了一棵树。对我来说,它应该可以正常工作,但由于我在这里,它却不能正常工作。作为记录,我的树是 City 类型,它具有三个字段,其中之一是 name,正如您将看到的那样。看看我的代码:

void add(City added, City parent){
//added is what is going to be added and child of parent. I first find parent in tree
//search method is coming after
TreeNode<City> parentNode = search(parent,this);
if (parentNode.hasLeftChild() && parentNode.getLeftChild().getCity().equals(parent))
parentNode = parentNode.getLeftChild();
else if (parentNode.hasNextSibling() && parentNode.getNextSibling().getCity().equals(parent))
parentNode = parentNode.getNextSibling();
else if (!parentNode.hasLeftChild())
parentNode.setLeftChild(new TreeNode<City>(added,null,null));
else {
TreeNode<City> next = parentNode.getLeftChild();
while(next.hasNextSibling())
next = next.getNextSibling();
next.setNextSibling(new TreeNode<City>(added,null,null));
}
}

public TreeNode<City> search(City parent, TreeNode<City> t){
if (t.getCity().equals(parent))
return t;
else if (t.hasLeftChild())
return search(parent,t.getLeftChild());
else
return search(parent,t.getNextSibling());
}

我一直在处理空指针异常,但不知道该怎么办。任何人都有更好的想法来搜索元素并添加它。或者至少有一个网站让我学习这些东西???

最佳答案

您必须测试树为空的基本情况,以便您尝试添加的节点真正成为树的根。

关于java - 创建树并添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6143593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com