问题描述
||
除了嵌套级别未知的数据结构之外,是否有其他方法可以执行此操作?另外,尽管我认为在其他问题中也是如此,但每个级别都有一个以上的条目(假设这个条目可能只有一个或为零)。
另外,是否有一种很好的方法来存储这样的数据结构,以便可以轻松找到每个对象的父对象?我当时想的是锯齿状的数组,但是由于不知道嵌套的深度,在运行时似乎很难生成。像树视图这样的结构比较理想,但是如果我只是将其用于数据存储而不是用于可视部分,则我不想实现控件。
作为最后的选择,我正在考虑编写自己的类来存储数据,但是如果不需要的话,我不想这样做。
解决方法
您是否在寻找带有父引用的n元树?
class Node
{
public Node Parent { get; }
public IEnumerable<Node> Children { get; }
}
IEnumerable<Node> Flatten(Node node)
{
yield return node;
foreach (var child in node.Children)
{
yield return Flatten(child);
}
}