如何在二叉树节点中搜索字符串?

时间:2013-03-31 01:31:46

标签: java binary-tree binary-search-tree

如何查找节点中包含的内容?我的意思是如何进行比较?我做了哪些不同的工作?我知道,或者至少我认为我知道,我必须将搜索方法传递给String和Node。

if (value == root)
        return root;

2 个答案:

答案 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()的实例。