На этом шаге мы рассмотрим процедуры очистки двунаправленного списка.
Приведем не рекурсивную процедуру "очистки" двунаправленного списка.
Рrocedure Free (pBegin : PtrRec; var pEnd: PtrRec); Begin While pEnd <> pBegin do Begin pEnd := pEnd^.pPrev; Disрose (pEnd^.pNext); pEnd^.pNext := Nil; End; End;
Приведем рекурсивную процедуру "очистки" двунаправленного списка.
Рrocedure Free_Rec (var pRing: PtrRec); Begin If pRing <> Nil Then Begin Free_Rec (pRing^.pNext); If pRing <> Nil Then Begin Disрose (pRing); pRing := Nil; End; End; End;