【发布时间】:2019-04-16 12:55:32
【问题描述】:
我需要一些帮助来创建一个用单词构建树的 javascript 算法。树的节点是始终按字母顺序排列的单词的字母。前任。 'balance' 应该是这个对象:
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] = {}
}
}
一个javascript对象,键是字母。
【问题讨论】:
-
这很不寻常。一个词,你只得到一个分支。
-
是的,我希望
balance产生{b:{a:{l:{a:{n{c:{e:{}}}}}}}}或类似的东西。生成这个结构的规则是什么? -
The nodes of the tree are the letters of the word that are always in alphabetical order以及object keys don't have a guaranteed iteration order 时如何工作? -
@NinaScholz 实际上每个字母都会产生自己的树。在这种情况下没有单个根节点。对象的第一层有点像树的根。
-
@VLAZ 规则是遍历单词的所有字母,然后从那里开始分支自己的树。好吧,如果对象是嵌套的,我会说顺序无关紧要吗?
标签: javascript algorithm data-structures tree trie