Переупорядочение путем перестановки в начало списка
Найденный элемент сразу оказывается в голове списка.
Первоначально указатель q нулевой, указатель p указывает на начало списка; p перемещается на второй элемент, а q на первый. Указатель начала списка (table) перемещается на второй элемент, а указатель второго элемента на третий. Таким образом второй элемент перемещается на первое место.
(ПСЕВДОКОД)
q=nil
p=table
WHILE (p <> nil) do
IF key=k(p)
then SEARCH=p
next(q)=next(p)
next(p)=q
table=p
return
end IF
q=p
p=next(p)
end WHILE
SEARCH=0
return