我有一些树形结构的对象,希望从子节点聚合状态信息并将聚合后的状态更新到父节点。例如,节点A有子节点B1、B2,B1有子节点C1、C2、C3。每个节点都有一个状态属性。
现在如果C1、C2、C3都完成了,我想将B1标记为已完成。如果C4、C5、C6、C7完成了,则将B2标记为已完成。当B1和B2都完成时,将A标记为已完成。
我可以通过 brute force 方法遍历这些节点并进行更新,但是否有高效的算法可以实现呢?
A { B1 { C1、C2、C3 }, B2 { C4、C5、C6、C7 } }
现在如果C1、C2、C3都完成了,我想将B1标记为已完成。如果C4、C5、C6、C7完成了,则将B2标记为已完成。当B1和B2都完成时,将A标记为已完成。
我可以通过 brute force 方法遍历这些节点并进行更新,但是否有高效的算法可以实现呢?
A { B1 { C1、C2、C3 }, B2 { C4、C5、C6、C7 } }