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序列中。根据我们使用的是基于零的索引还是基于一的索引,这个范围可能会发生变化。