c# - 麻烦弄清楚这个递归

标签 c# recursion graph

var seller = new User(1);

for (var i = 0; i < 3; ++i)
    seller.Children.Add(new User(1));

foreach (var child in seller.Children)
{
    for (var i = 0; i < 3; ++i)
        child.Children.Add(new User(1));

    foreach (var child2 in child.Children)
    {
        for (var i = 0; i < 3; ++i)
            child2.Children.Add(new User(1));

        foreach (var child3 in child2.Children)
            for (var i = 0; i < 3; ++i)
                child3.Children.Add(new User(1));
    }
}

我正在尝试创建一个对象树,其中每个级别都有 3 个对象。我知道有一种方法可以使它成为递归函数

最佳答案

private static void AddChildren(User user, int maxDepth)
{
    if (maxDepth == 0)
        return;
    for (var i = 0; i < 3; ++i)
    {
        var child = new User(1);
        AddChildren(child, maxDepth - 1);
        user.Children.Add(child);
    }
}

初始调用应该是

AddChildren(new User(1), 3); //where 3 is max depth of tree.

关于c# - 麻烦弄清楚这个递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7303919/

相关文章:

Java指数法

sql - 家谱的递归 CTE 不递归

Groovy 2.1.9 中的闭包递归

c# - Monitor.Wait - while 或者 if?

c# - 与 Entity Framework 和 MySQL 的乐观并发

c# - 如何使用 A* 管理 "no-path"场景

algorithm - 用于查找最能破坏图形的两个节点的图形算法/方法

api - 不能推广帖子

c# - 为 MVVM 选择的多个列表框/集合项

C#线程池问题