Алгоритм программы переупорядочивания списка с перестановкой найденного элемента в начало
Приведенный алгоритм предусматривает возможность перестановки в начало списка любого по счету найденного элемента списка, а также случай, когда найденный элемент в списке первый и перестановка не нужна.
q= nil
p = table
while (p <> nil) do
if key = k(p) then
search = p
if q = nil
then 'перестановка не нужна'
return
endif
nxt(q) = nxt(p)
nxt(p) = table
table = p
return
endif
q = p
p = nxt(p)
endwhile
search = 0
return
Алгоритм метода транспозиции
Нижеприведенный алгоритм описывает метод транспозиции для любого по счету найденного элемента списка, а также случай, когда найденный элемент в списке первый и перестановка не нужна.
s = nil
q = nil
p = table
while (p <> nil) do
if key = k(p) then
‘ нашли, транспонируем
if q = nil then
‘ переставлять не надо
return
endif
nxt(q) = nxt(p)
nxt(p) = q
if s = nil then
table = p
else
nxt(s) = p
search = p
endif
return
endif
s =q
q = p
p = nxt(p)
endwhile
search = nil
return