У меня есть объекты в древовидной структуре, я хотел бы собирать информацию о состоянии от дочерних узлов и обновлять родительский узел с агрегированным статусом. Допустим, узел A имеет дочерние элементы B1, B2, а B1 имеет C1, C2, C3 в качестве дочерних элементов. Каждый из узлов имеет атрибут статуса.
Теперь, если C1, C2, C3 завершены, я бы хотел отметить B1 как завершенный. И если C4, C5, C6, C7 завершены, сделайте B2 завершенным. Когда B1 и B2 оба завершены, отметьте A как завершенный.
Я могу пройти через эти узлы методом грубой силы и сделать обновления, может кто-нибудь предложить эффективный алгоритм для этого.
A {
B1
{C1, C2, C3},
Би 2
{C4, C5, C6, C7}
}