На этом шаге мы рассмотрим проход по двунаправленному списку от его начала.
Пусть значением переменной 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;
На следующем шаге мы рассмотрим проход по двунаправленному списку от его конца.