Древовидная структура данных в C#

delegate void TreeVisitor(T nodeData);

class NTree
{
    private T data;
    private LinkedList> children;

    public NTree(T data)
    {
         this.data = data;
        children = new LinkedList>();
    }

    public void AddChild(T data)
    {
        children.AddFirst(new NTree(data));
    }

    public NTree GetChild(int i)
    {
        foreach (NTree n in children)
            if (--i == 0)
                return n;
        return null;
    }

    public void Traverse(NTree node, TreeVisitor visitor)
    {
        visitor(node.data);
        foreach (NTree kid in node.children)
            Traverse(kid, visitor);
    }
}

Простая рекурсивная реализация visual-c# ... <40 строк кода ... Вам data-structure просто нужно сохранить ссылку .cs-file на корень дерева вне класса, или c#-language оберните его в другой класс, возможно, переименуйте data-structure в TreeNode ??

c#

data-structures

2022-11-17T10:02:43+00:00