Javascript 从单词创建树/Trie
我需要一些帮助来创建一个javascript算法,用一个单词构建一个树。树的节点是始终按字母顺序排列的单词的字母。例如,“余额”应为该对象:Javascript 从单词创建树/Trie,javascript,algorithm,data-structures,tree,trie,Javascript,Algorithm,Data Structures,Tree,Trie,我需要一些帮助来创建一个javascript算法,用一个单词构建一个树。树的节点是始终按字母顺序排列的单词的字母。例如,“余额”应为该对象: const tree = { b: { l: { n: {} }, n: {} }, a: { l: { n: { } }, n: { }, c: { e: {
const tree = {
b: {
l: {
n: {}
},
n: {}
},
a: {
l: {
n: {
}
},
n: {
},
c: {
e: {
}
},
e: {
}
}
....
}
}
const asArray = a.split('')
const tree = {}
for (let i = 0; i < a.length; i++) {
const letter = array[i];
const greaterThan = asArray.filter((value, index) => {
return value > letter && index > i
})
tree[letter] = {}
for (let j = 0; j < greaterThan.length; j++) {
const gt = greaterThan[j];
tree[letter][gt] = {}
}
}
const树={
b:{
l:{
n:{}
},
n:{}
},
a:{
l:{
n:{
}
},
n:{
},
c:{
e:{
}
},
e:{
}
}
....
}
}
const asArray=a.split(“”)
常量树={}
for(设i=0;i{
返回值>字母和索引>i
})
树[字母]={}
for(设j=0;j
一个javascript对象,其键是字母。您可以获得字符串的所有有序部分,然后构建树
函数getParts(字符串){
功能iter(i,左){
var last=左[left.length-1];
如果(i>=string.length){
如果(左.长)结果。推(左);
返回;
}
如果(!last | | last{
a、 减少((o,k)=>o[k]=o[k]|{},r);
返回r
}, {});
控制台日志(树)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}
这是不寻常的。一个单词只得到一个分支。是的,我希望balance
产生{b:{a:{l:{a:{n{c:{e:{}}
或类似的结果。生成此结构的规则是什么?树的节点是始终按字母顺序排列的单词的字母。
当@NinaScholz实际每个字母生成自己的树时,这将如何工作。在这种情况下,没有单个根节点。对象的第一级是它们树的根。@VLAZ规则是循环遍历单词的所有字母,然后从那里开始分支它们自己的树。如果对象是嵌套的,我会说顺序不重要,对吗?太好了!但是为什么一封信不能产生a:c:e?