Итак, я создаю двоичное дерево поиска, и одним из методов, который мне нужно сделать, является метод извлечения, который находит определенное значение и возвращает его. Вот метод (я не проверял еще, так что я не уверен, если это право)Как вызвать метод извлечения в BST
protected TreeNode retrieveItem(TreeNode r, String word) {
if (r == null){
return null;
}
if (word.compareTo(r.item.getWord()) < 0){
return retrieveItem(r.left, word);
} else if (word.compareTo(r.item.getWord()) > 0){
return retrieveItem(r.right, word);
}
return r;
}
Поскольку это защищенный метод, он должен быть вызван из открытого метода. Обычно называть эти методы, которые я бы сделать что-то вроде
public void delete(String word) {
root = deleteItem(root, word);
}
Который называет метод удаления, используя корень (который уже объявившего) и слово. Проблема с вызовом метода извлечения является то, что метод выглядит следующим образом
public WordRefs retrieve(String word) {
return null;
}
Это говорит возвращать нуль, потому что я не знаю, что возвращаемое значение должно быть, и я не уверен, что я должен сделать называть его. Итак, как я могу назвать этот метод?
Вот класс WordRefs:
import java.util.LinkedList;
public class WordRefs {
private String word;
private LinkedList<Integer> lineNumbers;
public WordRefs(String word) {
this.word = word;
lineNumbers = new LinkedList<>();
}
public void addLine(int lineNumber) {
lineNumbers.add(lineNumber);
}
public String getWord() {
return word;
}
public LinkedList<Integer> getLineNumbers() {
return lineNumbers;
}
public String toString() {
String result = word + ":";
for (Integer ii : lineNumbers) {
result += " " + ii;
}
return result;
}
}
Поскольку 'retrieveItem()' возвращает 'TreeNode', не должен' retrieve() 'возвращать' TreeNode' также? Возвращение одного и того же слова будет бессмысленным, и возврат 'boolean', указывающий, было ли обнаружено слово' word', будет иметь смысл только в том случае, если это метод 'contains()' like. –
На самом деле предполагается, что WordRefs вернет не TreeNode, но будет ли опубликовать весь класс, чтобы выяснить, что происходит? –