Итерация по каждому элементу, заполнение таблицы child1Parent2 [groups, groups].На старте это полно истин.Для каждой группы проверяется условие: g1 установлено, а g2 не установлено.Если это правда, установите false в chuld1Parent2 [gr1, gr2].В конце итерации у вас есть таблица, которая содержит всю информацию о родительских и дочерних элементах.
boolean child1Parent2[groups,groups];
for( g1:groups) for(g2:groups) {
child1Parent2[g1,g2]=true;
}
for (itemRow:rows){
for( g1:groups) for(g2:groups)
if (child1Parent2[g1,g2])
if (itemRow.contains(g1)& !itemRow.contains(g2))
child1Parent2[g1,g2]=false;
}
В результате вы получите: child1Parent2[g1,g2] === (g1 is a child of g2)
Совет на будущее:хотите найти некоторую информацию, подумайте о том, как эта информация будет объявлена, какую структуру она может иметь.Вы поймете намного больше по этому вопросу.