1
我有一個遍歷二叉搜索樹的遞歸方法。每次訪問具有鍵屬性的節點時,都會將該節點插入到新的BST中。我的問題是我需要保持有多少節點有關鍵元素的計數。我很難用遞歸方法做這件事。有誰知道如何在遞歸方法中實現「計數器」。我也在下面發佈了我的代碼。以遞歸方法保留已標記節點的數量
public BookBST TraverseInOrder_Pblshr(Node localRoot, String key, BookBST B){
if (localRoot!=null){
TraverseInOrder_Pblshr(localRoot.leftChild, key, B);
if(localRoot.B1.GetPublisher().equals(key)){ // if node matches key
B.insert(localRoot.B1,3); // insert into BST (using publisher to order)
//System.out.println(localRoot.B1.GetPublisher()+ " this is item has been inserted into subtree");
//System.out.println(localRoot.B1.GetTitle());
}
TraverseInOrder_PubYr(localRoot.rightChild, key, B);
};
return B;
}
爲什麼要把這些事情算作'TraverseInOrder_Pblshr'方法的工作? (或者'..._ PubYr'方法,不管它是什麼。)調用者以'B'引用開始,所以它可以保存'B'的大小,然後運行這個方法,然後比較新的大小'B'之後。不同之處在於擁有鑰匙的物品數量。 –
來想一想......爲什麼你要返回'B'呢?來電者已擁有它。 –