Изменения

Перейти к: навигация, поиск

Техника частичного каскадирования

13 байт добавлено, 00:09, 10 июня 2017
Построение
'''Node''' last_non_alien = ''null'' <font color=green>// указатель на последний ''неподставной элемент'' для текущей позиции </font>
'''Node''' last_alien = ''null'' <font color=green>// указатель на последний ''подставной элемент'' для текущей позиции</font>
'''while'''(''true'') '''if''' (pointer_in_next_M > M[i + 1].size && '''and''' pointer_in_C > C[i].size)
'''break'''
'''if''' (pointer_in_next_M > M[i + 1].size || '''or''' M[i + 1][pointer_in_next_M] <tex> \geqslant </tex> C[i][pointer_in_C])
M[i][pointer_in_M].key = C[i][pointer_in_C].key
M[i][pointer_in_M].left= last_alien
pointer_in_next_M += 2
pointer_in_M++
last_non_alien = (!'''not''' M[i][M[i].size].is_alien ? M[i][M[i].size] : ''null'') <font color=green>// теперь это указатель на первый справа ''неподставной элемент'' для текущей позиции</font>
'''for''' j = M[i].size - 1 '''downto''' 1
'''if''' (M[i][j].is_alien)
M[i][j].right = last_non_alien
'''else'''
112
правок

Навигация