Шаг 37.
Проход по двунаправленному списку от его начала

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

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

 Рrocedure Print_Forward (pBegin: PtrRec);
   var pAux : PtrRec; 
 Begin
   pAux := pBegin^.pNext;             {Исключаем из просмотра заглавное звено}
   If pAux = Nil 
      Then WriteLn ('Двунаправленный список пуст.') 
      Else While pAux <> Nil do 
             Begin 
                Write (pAux^.Element:5);
                pAux := pAux^.pNext;
             End; 
   WriteLn;
 End;


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

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




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