Javascript 创建随机树?
创建随机树(或满足树属性的邻接矩阵)的好方法是什么?我目前正在返回以下数据结构,但我想随机生成它。有什么建议吗Javascript 创建随机树?,javascript,algorithm,graph,Javascript,Algorithm,Graph,创建随机树(或满足树属性的邻接矩阵)的好方法是什么?我目前正在返回以下数据结构,但我想随机生成它。有什么建议吗 return [{ Source: "A1", Target: "A2", }, { Source: "A2", Target: "A3", }, { Source: "A1", Target: "A4", }, { Source: "A4",
return [{
Source: "A1",
Target: "A2",
}, {
Source: "A2",
Target: "A3",
}, {
Source: "A1",
Target: "A4",
}, {
Source: "A4",
Target: "A6",
}, {
Source: "A4",
Target: "A7",
}, {
Source: "A3",
Target: "A8",
}, {
Source: "A3",
Target: "A5",
}];
具有n个节点的树可以由n-2个整数序列(范围为[0,n-1])唯一地表示。这就是所谓的
创建一个随机序列应该没有问题。然后你只需将序列转换为树结构,就完成了。当你说“随机”时。。你是说平衡树吗?@SajitKunnumkal:事实上,一切都很好。最好是有更多的叶子节点,但除此之外我真的没有任何偏好。谢谢!这正是我要找的。我假设当你说
创建一个随机序列应该没有问题
,这只是一个随机整数数组,它们不需要遵循特定的约束。这是正确的吗?我的意思是,是否有一种方法可以控制生成的树的深度。是的,序列没有进一步的约束(除了条目的范围)。如果要控制深度,需要定义树的深度。毕竟,您可以将任意节点设置为根节点。但除此之外,没有办法控制深度。太棒了!谢谢您的时间。更正:Prufer序列的数字必须在范围内[1,n-1]
@AkshayLAradhya No,n
。考虑树<代码> 1 - 3 - 2 < /代码>。code>1是最小的叶,因此3
将添加到Prüfer序列中。根据我们使用的是基于零的索引还是基于一的索引,这个范围可能会发生变化。