Java 三元搜索树在预测文本中的应用
我正在尝试编写一个程序,当用户开始在搜索栏中键入一个单词时,该程序将显示用户可能要键入的单词列表 我有一本大约40万字的字典。目前,我正在尝试将所有内容存储在TST中,并使用该数据结构。我遇到的问题是,TST使用钥匙。我能够编写一个使用键和值的terrenary搜索树,它似乎可以工作,但我不知道我的程序应该使用什么键。或者是否有更好/更简单的数据结构可用于此程序?我尽量不使用太多的记忆 到目前为止,这就是我为Node类和insert所做的Java 三元搜索树在预测文本中的应用,java,algorithm,tree,Java,Algorithm,Tree,我正在尝试编写一个程序,当用户开始在搜索栏中键入一个单词时,该程序将显示用户可能要键入的单词列表 我有一本大约40万字的字典。目前,我正在尝试将所有内容存储在TST中,并使用该数据结构。我遇到的问题是,TST使用钥匙。我能够编写一个使用键和值的terrenary搜索树,它似乎可以工作,但我不知道我的程序应该使用什么键。或者是否有更好/更简单的数据结构可用于此程序?我尽量不使用太多的记忆 到目前为止,这就是我为Node类和insert所做的 private Node root; priva
private Node root;
private class Node
{
char c;
Node left, mid, right;
Value val;
}
public void put(String key, Value val)
{
root = put(root, key, val, 0);
}
private Node put(Node x, String key, Value val, int d)
{
char c = key.charAt(d);
if(x== null)
{
x = new Node();
x.c = c;
}
if(c < x.c)
x.left = put(x.left, key, val, d);
else if( c > x.c)
x.right = put(x.right, key, val , d);
else if (d < key.length () -1)
x.mid = put(x.mid, key, val, d+1);
else
x.val = val;
return x;
}
私有节点根;
私有类节点
{
字符c;
左、中、右淋巴结;
价值增值;
}
公共void put(字符串键,值val)
{
root=put(root,key,val,0);
}
专用节点put(节点x、字符串键、值val、int d)
{
字符c=键字符(d);
如果(x==null)
{
x=新节点();
x、 c=c;
}
if(cx.c),则为else
x、 右=放置(x.右,键,值,d);
else if(d 对于一个更好的数据结构,您应该考虑使用A。它也被称为前缀树,在这个上下文中是一个更合适的名称。可以找到一种可能的实现方法。在我看来,您不需要密钥。你能给我看一份推荐信吗。例如,我还使用TST进行快速模式匹配。似乎您的键就是字符串,您没有任何东西可以用作值?是的,我不确定值使用什么。我在想,把那部分剪掉,然后用钥匙。我应该得到同样的结果,对吗?我最初使用了Trie。但是Trie会占用大量内存,对于我的项目,我的内存不足。TST基本上应该是一个Trie,但使用的内存较少。