Шаг 39.
Очистка двунаправленного списка

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

Приведем не рекурсивную процедуру "очистки" двунаправленного списка.

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




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