<分区>
我正在尝试生成一个元素列表,如果可视化,这些元素将生成一个树结构。
示例:
Element 1 -> 1, 0 //ID is 1 & Parent ID is 0 (0 = root)
Element 2 -> 2, 0 //ID is 2 & Parent ID is 0 (0 = root)
Element 3 -> 3, 1 //ID is 3 & Parent ID is 1
Element 4 -> 4, 3
Element 5 -> 5, 2
如果要用这种结构可视化一棵树:
为了完成这项工作,这里是节点类:
public class Node
{
public string id;
public string parentId;
public List<Node> children = new List<Node>();
}
Similar to a tree, a node may contain a parent and it also may contain multiple other children nodes
任务是将元素排序到它们适当的层次结构中,并将子元素添加到它们各自父元素的子元素集合中。我想到了2种方法:
1) 循环法
i) Loop & find the Base/root nodes (nodes with parent as 0)
ii) 循环查找以基节点为父节点的节点
iii) 将它们添加到基节点的子集合中
然而,上述方法最适用于深度为 2 的树,即根及其直接子级。想象一棵具有多个复杂层次的树。此方法不适用于此。
这就是我到目前为止所尝试的。
2)“递归”方法
第二种方法是“递归”方法。这就是我似乎无法弄清楚的。谁能帮我解决这个问题?
有没有人尝试过解决这个问题?如何排列包含“n”个元素并定义了父 ID 和 ID 的列表?