Шаг 27.
Поиск звена в кольцевом однонаправленном списке с включенным заглавным звеном

    На этом шаге мы рассмотрим поиск звена в однонаправленном кольцевом списке с включенным заглавным звеном.

    Поиск компоненты с заданным ключом необходим для процедур чтения и вставки компоненты в кольцевой список. Пусть требуется найти компоненту списка с ключом Key.

    Приведем функцию поиска с помощью линейного просмотра:

 Function Find_Ring (pBegin: PtrRec; Key: TypeElement; 
                 var pCKey : PtrRec): Boolean;
 Var pAux: PtrRec;
 Begin
     Find_Ring := False;	
     pCKey := Nil;
     pAux := pBegin^.pNext;    {Исключим из рассмотрения заглавное звено} 
     {Пока текущий указатель не совпадает с началом списка и }
     {элемент с заданным ключем не найден...}
     While (pAux <> pBegin) and (pAux^.Element <> Key) do
       pAux := pAux^.pNext;
     If  pAux^.Element = Key
        Then 
          Begin 
             Find_Ring := True; 
             pCKey := pAux
          End; 
End;

    Отметим, что функция в качестве побочного эффекта возвращет ссылку на первое вхождение заданного элемента в указанный список.

    На следующем шаге мы рассмотрим добавление звена в список с включенным заглавным звеном.




Предыдущий шаг Содержание Следующий шаг