如何查找节点中包含的内容?我的意思是如何进行比较?我做了哪些不同的工作?我知道,或者至少我认为我知道,我必须将搜索方法传递给String和Node。
if (value == root)
return root;
答案 0 :(得分:1)
在你的标签中你说它是一棵二叉树(尽管这并不意味着它是一个有序的树)。
对于排序树,您可以执行的操作:
public String searchTree (Node n, String searchVal)
{
if (n.isEmpty())//no more children
{
return null;
}
else if (n.root().toString().equals(searchVal) //we found it
{
return n.root();
}
else if (searchVal < n.root().toString()) //search left child
{
return searchTree(n.leftChild(),searchVal);
}
else //search right child
{
return searchTree(n.rightChild(),searchVal);
}
}
这是基本代码,但需要为您的Tree类进行优化 如果未对树进行排序,则可以组合最后的if语句(首先检查左树;如果为null,则返回右侧树上的搜索,否则返回左侧树上的搜索)
亲切的问候,
Héctorvanden Boorn
答案 1 :(得分:0)
treeSet.contains(object)
其中treeSet是TreeSet的一个实例,而object是一个正确覆盖equals()和hashcode()的实例。