Data structures 自动建议功能的加权trie
我有一个trie(后缀树),我在我的网站上使用的自动建议功能 现在,我想显示最流行(权重最高)的文本,而不是权重较低的文本。我怎样才能改变我的trie,使建议按加权顺序出现Data structures 自动建议功能的加权trie,data-structures,trie,Data Structures,Trie,我有一个trie(后缀树),我在我的网站上使用的自动建议功能 现在,我想显示最流行(权重最高)的文本,而不是权重较低的文本。我怎样才能改变我的trie,使建议按加权顺序出现 或者我应该在内存中按权重排序吗?您可以在每个节点上添加count或weight属性,并在使用单词构建trie时对其进行更新。每个字符的初始权重为0,但如果一个字符是单词的终端字符,则其初始权重为1。在不断添加单词时,可以调整终端字符的权重 例如,您可以: t:0 | o:1 | w:3---e:0 | \ \ n
或者我应该在内存中按权重排序吗?您可以在每个节点上添加
count
或weight
属性,并在使用单词构建trie时对其进行更新。每个字符的初始权重为0
,但如果一个字符是单词的终端字符,则其初始权重为1
。在不断添加单词时,可以调整终端字符的权重
例如,您可以:
t:0
|
o:1
|
w:3---e:0
| \ \
n:2 a:0 l:4
\
r:0
\
d:2
对于字符串to
(出现一次)、tow
(出现三次)、tob
(出现四次)、town
(出现两次)和to
(也出现两次)
然后,如果前缀为tow
,则可以查看非零加权字符串,例如tow:3
,tower:4
,town:2
,以及朝向:2
之后,您可以根据重量进行排序
我还没有在实践中尝试过这个实现;这只是一个想法