Ich habe eine Sammlung von benutzerdefinierten Knoten, die eine übergeordnete Kind-Beziehung hat. Jeder Knoten kann ein zusammengesetzter Typ sein (der ein anderes Kind hat) oder ein einfacher Typ (Knoten auf Blattebene)Suche nach toten Knoten aus übergeordneten Kind Knoten Sammlung
Ich möchte eine Funktion schreiben, die mir eine Liste aller toten Knoten geben wird. Zum Beispiel hier ist die Knoten Sammlung
auf dem obigen Fall Basierend, P2, P3, P8, P9, P10, p6, c1 sind tot Knoten (da unten ihre Hierarchie sie haben keine einfachen Knoten in ihnen)
brauche ich eine Funktion als
private List<NodeEntity> GetDeadNodes(List<NodeEntity> originalList)
Hier kann die Funktion ist für die ursprüngliche Liste hat
private List<NodeEntity> GetOriginalList()
{
var list = new List<NodeEntity>()
{
new NodeEntity() {Code = "P1", ParentCode = "001", Type = NodeType.Composite},
new NodeEntity() {Code = "C1", ParentCode = "001", Type = NodeType.Composite},
new NodeEntity() {Code = "P2", ParentCode = "P1", Type = NodeType.Composite},
new NodeEntity() {Code = "P3", ParentCode = "P2", Type = NodeType.Composite},
new NodeEntity() {Code = "P8", ParentCode = "P3", Type = NodeType.Composite},
new NodeEntity() {Code = "P9", ParentCode = "P3", Type = NodeType.Composite},
new NodeEntity() {Code = "P4", ParentCode = "P1", Type = NodeType.Composite},
new NodeEntity() {Code = "L3", ParentCode = "P1", Type = NodeType.Simple},
new NodeEntity() {Code = "P6", ParentCode = "P1", Type = NodeType.Composite},
new NodeEntity() {Code = "P10", ParentCode = "P4", Type = NodeType.Composite},
new NodeEntity() {Code = "L2", ParentCode = "P4", Type = NodeType.Simple},
new NodeEntity() {Code = "P5", ParentCode = "P4", Type = NodeType.Composite},
new NodeEntity() {Code = "L1", ParentCode = "P5", Type = NodeType.Simple}
};
return list;
}
Sind p1, p4, p6, L3, c1 auf gleichem Niveau? – displayName
Was hast du probiert? Baum plus rekursive Tiefe zuerst suchen? Warteschlange der zu besuchenden Knoten beginnend mit Simple? Etwas? –
sehe meinen Bildanhang. p6, p4, L3 sind Kinder von p1. c1 und p1 sind auf der gleichen Ebene, die Kinder von 001 – dev1