Javascript 如何将整数数组转换为树?
这是100个数字,每行10个Javascript 如何将整数数组转换为树?,javascript,arrays,algorithm,tree,Javascript,Arrays,Algorithm,Tree,这是100个数字,每行10个 [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6,
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
我想把这些数字排列成一棵树,每个节点最多有5个元素。大概是这样的:
[ ]
[ ],[ ],[ ],[ ]
[ ],[ ],[ ],[ ],[ ] [ ],[ ],[ ],[ ],[ ] [ ],[ ],[ ],[ ],[ ] [ ],[ ],[ ],[ ],[ ]
1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6 1 6
2 7 2 7 2 7 2 7 2 7 2 7 2 7 2 7 2 7 2 7
3 8 3 8 3 8 3 8 3 8 3 8 3 8 3 8 3 8 3 8
4 9 4 9 4 9 4 9 4 9 4 9 4 9 4 9 4 9 4 9
5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0 5 0
因此,我们在树中有4层:
在第1层的顶层,我们有4个子层和4个数字数组。
在第二层中,我们有5个子层和5个数字数组。
在第三层,我们有5个孩子,5个数字。
第四层是数字。
如何编写JavaScript算法来生成这样的树?规则是,每个区块最多5个。或者更一般地说,每个块的最大n
这有点类似于一个,但同时它看起来更复杂
这几天我一直被难住了,但这将有助于解决这个问题:
基本上,随着阵列越来越长,嵌套将越来越大
另一个简单的示例是13项数组:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
1, 2, 3]
将其转换为此树:
[ ]
[ ],[ ],[ ]
1 6 1
2 7 2
3 8 3
4 9
5 0
您可以使用递归方法,从最内部的块大小开始,然后在每个级别上划分输出。因此,只要结果长度大于size参数,就可以通过调用函数将其除以 常数数据=[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ] 函数分割数据、大小{ 常量结果=[] 对于let i=0;i
logresult您可以使用递归方法,从最内部的块大小开始,然后在每个级别上划分输出。因此,只要结果长度大于size参数,就可以通过调用函数将其除以 常数数据=[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 ] 函数分割数据、大小{ 常量结果=[] 对于let i=0;i
console.LogResulthlo Lance Pollard!我不能代表选民们发言,但当我读到你的问题时,有一件事让我印象深刻,那就是没有关于将哪些号码放入哪个箱子的规范/要求。原始数组的二维结构是否重要,或者如果我们有一个包含100个无序数字的大袋子,它是否会相同?如果您没有要求,这是一个非常简单的算法:1将数字放在5乘5的箱子中;2将垃圾箱放入5×5的垃圾箱中3将垃圾箱放入5×5的垃圾箱中;4.重复5次,直到只剩下一个箱子。数组的顺序很重要,应该以某种方式在树中保持。树箱或树块预先指定,它们最多应包含5个项目。这有帮助吗?然后,随着阵列的增长,树中的嵌套越来越深。但是每一层每一块只能有5个项目。输入数组中总是有100个数字吗?决策树库包括决定如何在树的叶子上分配数据点的算法;这些算法通常接受可选参数,例如每个节点的最大子节点数和每个叶的最大数据点数。尽管您只对简单的树而不是决策树感兴趣,但您可以使用这样的库函数来构建决策树,以解决一个琐碎的决策问题。你好,兰斯·波拉德!我不能代表选民们发言,但当我读到你的问题时,有一件事让我印象深刻,那就是没有关于将哪些号码放入哪个箱子的规范/要求。原始数组的二维结构是否重要,或者如果我们有一个包含100个无序数字的大袋子,它是否会相同?如果您没有要求,这是一个非常简单的算法:1将数字放在5乘5的箱子中;2将垃圾箱放入5×5的垃圾箱中3将垃圾箱放入5×5的垃圾箱中;4.重复5次,直到只剩下一个箱子。数组的顺序很重要,应该以某种方式在树中保持。树箱或树块预先指定,它们最多应包含5个项目。这有帮助吗?然后,随着阵列的增长,树中的嵌套越来越深。但每个层每个块只能有5个项目。输入数组中总是有100个数字吗?决策树库包括决定如何分配数据点的算法
在树叶上;这些算法通常接受可选参数,例如每个节点的最大子节点数和每个叶的最大数据点数。虽然你只对一棵简单的树而不是一棵决策树感兴趣,但你可以使用这样的库函数来构建一棵决策树来解决一个琐碎的决策问题。这么简单的算法,但我很难在脑海中想象它,哈哈。自下而上建造这棵树是我的动力。谢谢你!这样一个简单的算法,但我正在努力想象它在我的脑海哈哈。自下而上建造这棵树是我的动力。谢谢你!