2013-03-31 81 views
-2

如何查找節點中包含的內容?我的意思是如何進行比較?我做了什麼不同的工作?我知道,或者至少我想我知道,我必須通過搜索方法字符串和節點。如何搜索二叉樹節點的字符串?

if (value == root) 
     return root; 
+0

你能包括你的樹的實現嗎? 很少有內容給你答案。 – Gubatron

+0

*「...我如何進行比較?」*對於字符串類型,請使用equals()' –

回答

0

在你的標籤你說它是一個二叉樹(儘管這並不意味着它是一個排序樹)。

你可以在一個有序樹的情況下做些什麼:

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類 萬一樹沒有排序,最後如果 - 聲明可以合併(先檢查左樹;如果是空返回右邊樹形搜索,否則返回左邊樹搜索)

親切的問候,
海克特範登Boorn

+0

樹未排序。它是平衡的。我只是在做如果left爲空add,否則如果right爲null add,否則如果剩餘的節點數小於或等於right,則添加left,否則add right。我應該想到toString方法。它看起來會照顧它。謝謝! –

0

treeSet.contains(object)

其中treeSet是TreeSet的一個實例,object是一個正確覆蓋equals()和hashcode()的實例。