1
我有一個我想要轉換爲樹結構的列表。我怎樣才能將其轉換爲樹狀結構?使用c#遞歸地構建父子關係的樹
我已經看過Build tree type list by recursively checking parent-child relationship C#線程,但由於我班的鍵是字符串,我無法使用該解決方案。請幫助
internal class Program
{
private static void Main(string[] args)
{
List<node> nodeList = new List<node>();
node n = new node("A", "A1", null, 1); nodeList.Add(n);
n = new node("B", "A2", "A1", 2); nodeList.Add(n);
n = new node("C", "A3", "A1", 2); nodeList.Add(n);
n = new node("D", "A4", "A1", 2); nodeList.Add(n);
n = new node("E", "A5", "A2", 3); nodeList.Add(n);
n = new node("F", "A6", "A5", 4); nodeList.Add(n);
n = new node("G", "A7", "A3", 3); nodeList.Add(n);
n = new node("H", "A8", "A4", 3); nodeList.Add(n);
n = new node("I", "A9", "A4", 3); nodeList.Add(n);
n = new node("J", "A10", "A4", 3); nodeList.Add(n);
n = new node("K", "A11", "A10", 4); nodeList.Add(n);
n = new node("L", "A12", "A10", 4); nodeList.Add(n);
n = new node("M", "A13", "A12", 5); nodeList.Add(n);
n = new node("N", "A14", "A12", 5); nodeList.Add(n);
n = new node("O", "A15", "A10", 4); nodeList.Add(n);
n = new node("P", "A16", null, 1); nodeList.Add(n);
n = new node("Q", "A17", "A16", 2); nodeList.Add(n);
}
}
public class node
{
public string name { get; set; }
public string key { get; set; }
public string parentKey { get; set; }
public int level { get; set; }
public List<node> Children { get; set; }
public node(string Name, string Key, string PK, int Level)
{
name = Name;
key = Key;
parentKey = PK;
level = Level;
}
}
反向鏈接樹是硬(ISH)解析成羽翼豐滿的大樹。無法在單個線性傳遞中完成,您需要首先將節點存儲在關聯容器中,然後在第二次傳遞中構建邊... – Medinoc