C#如何表示和遍历N叉树

3

树形例子

我需要一个用于表示N叉树的数据结构,并将其在C#中转换为JSON。我正在使用.NET Core。当然,我希望能够遍历这个树。 我没有找到用于表示N叉树的C#工具,关于二叉树倒是有大量文档供参考。


1
只需使用队列、栈或递归(自担风险)。现在是时候给出一个具体的类示例,以便有人可以回答它。 - TheGeneral
我需要表示一家公司的层次结构,从根节点开始。 我有一个API,它可以返回给我给定节点的所有子节点。 - felice.iorillo
1个回答

0

看起来你不需要任何“特殊”的数据结构 - 只需要一个包含自身集合的类:

class HierarchyMember
{
    public string Name { get; set; }
    public List<HierarchyMember> Children { get; set; }
}

我想任何流行的C# JSON序列化器都应该处理得了。例如Netonsoft的Json.NET:

Console.WriteLine(JsonConvert.SerializeObject(new HierarchyMember
{
    Name = "Root",
    Children = new List<HierarchyMember>
    {
        new HierarchyMember {Name = "Child_1"}, 
        new HierarchyMember {Name = "Child_2"}
    }
}, Newtonsoft.Json.Formatting.Indented));

输出:

{
  "Name": "Root",
  "Children": [
    {
      "Name": "Child_1",
      "Children": null
    },
    {
      "Name": "Child_2",
      "Children": null
    }
  ]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接