Есть некий массив неких структур, и у каждой структруры в массиве есть некий флаг, который выставляется каким-то значением в зависимости от того, какая стурктура предыдущая в массиве. Таким образом есть некая таблица условий — какой флаг выставлять кому по парам, кто за кем идет.
Можно конечно тупо пробегаться по массиву и каждый раз прогонять по большому if-у, типа если этот такой, а предыдущий вот такой, то ставим такой флаг, а если такой, а предыдущий другой — то такой флаг.