На этом шаге мы рассмотрим просмотр элементов однонаправленного списка с заглавным звеном.
Пусть значением переменной pAux типа указатель является ссылка на некоторый элемент списка целых чисел. Тогда после присваивания
pAux:= pAux^.pNext;
Рис.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;
В основной программе перед вызовом итерационной процедуры следует проверить, пуст ли список, например, так:
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);
На следующем шаге мы рассмотрим поиск компоненты однонаправленного списка с заглавным звеном по ключу.