java - 在 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;
}
解决方案
推荐阅读
- java - 双除法得到的整数
- hive - 启用 LDAP 身份验证时无法启动 hiveserver2
- c++ - 拱Linux。AUR 包 mysql 不能用 makepkg 构建。错误:构建()中发生故障
- networking - 如何在使用 openstack 创建的 centos VM 实例中禁用互联网?
- arrays - 如何在 POSTMAN 中验证 ARRAY 响应?
- python - 匹配首字母的正则表达式
- python-unittest - 运行创建的测试套件时,Python 单元测试运行两次
- c# - 在 WPF MVVM 应用程序中添加材料设计后,数据网格不显示滚动条并且设计已过时
- bash - 如何使用 aws unload 命令将数据从 AWS Redshift 卸载到 s3?
- python - 无法将列值转换为整数:无法将字符串转换为浮点数:“内部”