【问题标题】:C# How to represent and traverse an N-Ary treeC#如何表示和遍历N-Ary树
【发布时间】:2020-09-04 07:45:56
【问题描述】:

tree example

我需要一个结构来表示 N 叉树,然后在 C# 中将其转换为 JSON。我正在使用.net 核心。我当然希望能够遍历树。 我找不到任何用 C# 表示 N-Ary 树的东西,N-ary 树不是二叉树,相反,我找到了很多关于它的文档。

【问题讨论】:

  • 只需使用队列或堆栈,或递归(后果自负)现在是时候给出一个具体的类示例来说明您正在做什么,以便有人可以回答它
  • 我需要从根开始表示公司的层次结构。我有一个 API 可以返回给定节点的所有子节点

标签: c# json tree


【解决方案1】:

您似乎不需要任何“特殊”数据结构 - 只需要一个包含自身集合的类:

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
    }
  ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    相关资源
    最近更新 更多