首页 > 解决方案 > 在 BST 中找到最常见的元素

问题描述

我有一个 BST,每个节点都包含一个单词和一个频率。BST 按单词排序。

在插入 BST 之前,我们必须检查 BST 中的单词是否,如果它没有插入它。如果它在那里,我会将频率增加 1。

问题是

如何获得频率最高的单词?

这是我的 BST 课

public class BST {

    private BSTword root;//root as reference variable

    // CONSTRUCTORS
    public BST() {
        root = null;
    }

这是包含单词及其频率的节点

public class BSTword {

    private int freq;       
    private String word;    
    private BSTword left;   
    private BSTword right;  

    public BSTword() {
        word = "";
        left = right = null;
    }

    public BSTword(String word) {
        this.word = word;
        freq=1;
        left = right = null;
    }

这是我到目前为止所做的

BST 类中的这个方法

private BSTword mostCommonWord(BSTword p, int c) {
    if (p == null) {//No Subtree
        return p;
    } else {
        if (p != null) {
            if (p.getData() == c) {
                return p;
            }
            mostCommonWord(p.getLeft(), c);

            if (p.getLeft().getData() > c) {
                return p;
            }
            if (p.getRight().getData() > c) {
                mostCommonWord(p.getRight(), c);
            }
        }
    }
    return p;
}

标签: javarecursionbinary-search-tree

解决方案


推荐阅读