I have objects in a tree structure, I would like to aggregate status information from children nodes and update parent node with aggregated status. Lets say node A has children B1, B2, and B1 has C1, C2, C3 as children. Each of the nodes have a status attribute.
Now if C1, C2, C3 are all complete then I would like to mark B1 as completed. And if C4, C5,C6,C7 are complete make B2 as complete. When B1 and B2 are both complete mark A as complete.
I can go through these nodes in brute force method and make updates, could someone suggest an efficient algorithm to do it.
A {
B1
{ C1, C2, C3},
B2
{ C4, C5, C6, C7}
}