Шаг 8.
Просмотр элементов однонаправленного списка с заглавным звеном

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

    Пусть значением переменной pAux типа указатель является ссылка на некоторый элемент списка целых чисел. Тогда после присваивания

 pAux:= pAux^.pNext;
ее значением будет или ссылка на следующий элемент этого списка (если такой элемент имеется) или Nil. Пользуясь таким способом перехода от одного элемента к другому, можно просматривать весь список или его часть.


Рис.1. Проход по списку

    Оформим соответствующую процедуру вывода элементов однонаправленного списка с заглавным звеном на Pascal:

 Procedure Print_List (pBegin : PtrRec);
   var pAux : PtrRec;	       {текущий указатель}
 Begin 
   pAux := pBegin^.pNext;	{Исключаем из просмотра заглавное звено}
   While pAux <> Nil do 	{пока не конец списка}
      Begin
         Write (pAux^.Element : 4);
         pAux := pAux^.pNext;  {перейдем к следующему элементу}
      End;
   Writeln; 
 End;


    Замечание.
    Вместо оператора Write(pAux^.Element:4) можно использовать операторы, выполняющие необходимую обработку элементов списка.

В основной программе перед вызовом итерационной процедуры следует проверить, пуст ли список, например, так:

 If pBegin^.pNext = Nil
     Then WriteLn ('Список пуст!')
     Else Print_List (pBegin^.pNext);

    Приведем рекурсивную процедуру вывода элементов однонаправленного списка с заглавным звеном:

 Procedure Print_List_Re (pList : PtrRec);
  {здесь pList - указатель на звено, следующее за заглавным звеном}
 Begin
  If pList <> Nil
    then begin
       Write (pList^.Element : 4);
       Print_List_Re (pList^.pNext);
   End;
 End;

    В основной программе перед вызовом рекурсивной процедуры следует проверить, пуст ли список:

 If pBegin^.pNext = Nil
     Then WriteLn ('Список пуст!')
     Else Print_List_Re (pBegin^.pNext);

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




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