java - 如何在 BST 中调用检索方法

标签 java methods tree

所以我正在制作一个二叉搜索树,我需要制作的方法之一是检索方法,它找到某个值并返回它。方法如下(我还没有测试过,不确定是否正确)

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;
}

因为这是一个 protected 方法,所以需要从公共(public)方法中调用它。通常要调用这些方法,我会做类似的事情

public void delete(String word) {
    root = deleteItem(root, word);
}

它使用 root (已声明)和 word 调用删除方法。调用retrieve方法的问题是该方法看起来像这样

public WordRefs retrieve(String word) {
    return null;
}

它说 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;
    }
}

最佳答案

考虑到 WordRefs 类,我认为这样的东西应该有效:

public WordRefs retrieve(String word) {
    TreeNode node = retrieveItem(root, word);
    if (node == null) {
        return null;
    } else {
        return new WordRefs(node.item.word);
    }
}

如果 node.item 包含有关 lineNumber 的任何信息,您可以在返回 WordRefs 对象之前添加该信息。

关于java - 如何在 BST 中调用检索方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29358206/

相关文章:

java - Android 2d 游戏碰撞检测

Java 方法返回对象还是直接操作它?

mysql - 如何对 View 中的元素进行求和和计数(Rails 4)?

java - 如何使用jfreechart从上到下绘制折线图?

java - 参数调用中的大括号。 >> 这是什么意思? | Spring 3 和 GWT

java - 有没有办法判断程序是否仍在运行某个方法?

java - 当从另一个类调用方法时 - 返回一个难以理解的值 JAVA

r - 使用 R 聚合数据树上的值

javascript - JQuery 树遍历 - 上树而不是下树

javascript - D3 不会加载 Tree Map