我正在尝试编写一个程序,当用户开始在搜索栏中输入单词时,程序将显示用户可能尝试键入的单词列表。
我有一个大约400k字的字典。目前我正在尝试将所有内容存储在TST中并使用该数据结构。我遇到麻烦的是TST使用密钥的事实。我能够编写一个使用键和值的terrenary搜索树,它似乎工作,但我不知道我应该使用什么来为我的程序的键。或者是否可以使用更好/更容易的数据结构?我试图不要使用大量内存。
到目前为止,这是我对Node类的插入和插入。
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;
}