从平面收集分层树建筑

本文关键字:建筑 分层 平面 | 更新日期: 2023-09-27 18:15:30

我需要从分层平面集合中构建一个树,以点(.)分隔,例如c#中的名称空间。以下是作为集合(有序)的一些条目值:

A0.A0.A0
A1
A1.A2
A2.A3.A3.A2
A3.A2
A3.A4.A5.A3
A3.A4.A5.A4
B0.B1.B0
B1.B2
B1.B2.B3
B1.B2.B4

这个集合看起来像c#中的命名空间。因此,让我们假设它们是名称空间(您可以理解A.A.A.A名称空间实际上是合法的)。

我需要什么?

我需要这个集合中的父子树,像这样(注意,我们节省了一些空间,将一些名称连接在一起):

A0.A0.A0
A1
   A2
A2.A3.A3.A2
A3
   A2
   A4.A5        
      A3
      A4
B0.B1.B0
B1.B2
     B3
     B4

在本例中,我们将只有6个根对象。

这是我们算法的接口:

    public interface IParentChild
    {
        IEnumerable<IParentChild> Children { get; set; }
        string FullName { get; set; }
        string Name { get; set; }
    }

有什么建议吗

从平面收集分层树建筑

  1. 使用此答案中给出的Trie数据结构解析1tb的文本并有效地计算每个单词的出现次数

  2. 修改#1中的树生成代码来存储命名空间

  3. 遍历tree并将内容输出到控制台

如果您需要更多的细节,请在此注释,我可以快速编写。