Проблема в выяснении рекурсии для этого - PullRequest
1 голос
/ 05 сентября 2011
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 объекта.Я знаю, что есть способ сделать это рекурсивной функцией

Ответы [ 2 ]

5 голосов
/ 05 сентября 2011
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.
0 голосов
/ 05 сентября 2011

что вы подразумеваете под каждым уровнем есть три объекта? (у каждого узла есть три ребенка?) Когда вы останавливаетесь? (Т.е. какова высота дерева?)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...