如何查找節點中包含的內容?我的意思是如何進行比較?我做了什麼不同的工作?我知道,或者至少我想我知道,我必須通過搜索方法字符串和節點。如何搜索二叉樹節點的字符串?
if (value == root)
return root;
如何查找節點中包含的內容?我的意思是如何進行比較?我做了什麼不同的工作?我知道,或者至少我想我知道,我必須通過搜索方法字符串和節點。如何搜索二叉樹節點的字符串?
if (value == root)
return root;
在你的標籤你說它是一個二叉樹(儘管這並不意味着它是一個排序樹)。
你可以在一個有序樹的情況下做些什麼:
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
樹未排序。它是平衡的。我只是在做如果left爲空add,否則如果right爲null add,否則如果剩餘的節點數小於或等於right,則添加left,否則add right。我應該想到toString方法。它看起來會照顧它。謝謝! –
treeSet.contains(object)
其中treeSet是TreeSet的一個實例,object是一個正確覆蓋equals()和hashcode()的實例。
你能包括你的樹的實現嗎? 很少有內容給你答案。 – Gubatron
*「...我如何進行比較?」*對於字符串類型,請使用equals()' –