我有一个具有父子关系的自定义节点的集合。每个节点可以是复合类型(其中有其他子节点)或简单类型(叶级节点)从父子节点集合中查找死节点
我想编写一个函数,该函数将给出所有死点节点的列表。 例如这里是节点集合
基于以上的情况下,P2,P3,P8,P9,P10,P6,C1是死的节点(因为了他们的层次,他们没有任何在他们简单的节点)
我需要一个功能
private List<NodeEntity> GetDeadNodes(List<NodeEntity> originalList)
这里是函数具有原始列表
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;
}
p1,p4,p6,L3,c1处于同一水平吗? – displayName
你有什么试过?树加递归深度优先搜索?从简单的节点开始访问节点队列?什么? –
看到我的图像附件。 p6,p4,L3是p1的孩子。 c1和p1与001 – dev1