Основы программирования на языке Turbo Pascal. Беляева И.В. - 252 стр.

UptoLike

Составители: 

252
Pred^.Next := Vsp; {Теперь новое звено
встало вслед за звеном Pred}
End;
4. Удаление звена из произвольного места списка, отличного от начала
(после звена, указатель на которое задан)
{Процедура удаления звена из списка
после звена,
на которое ссылается указатель Pred;
в x содержится информация из
удалённого звена}
Procedure Iz_Spiska(Pred : U; Var X : BT);
Var Vsp : U;
Begin
Vsp := Pred^.Next; {Забираем ссылку
на удаляемое звено}
{Удаляем звено из списка,
перенаправив ссылку на следующее
за ним звено}
Pred^.Next := Pred^.Next^.Next;
X := Vsp^.Inf; {Забираем информацию
из удаляемого звена}
Dispose(Vsp); {Уничтожаем звено}
End;
Приведём полный текст модуля.
Unit Spisok;
Interface
Type BT = LongInt;
U = ^Zveno;
Zveno = Record Inf : BT; Next: U End;
Procedure V_Nachalo(Var First : U; X : BT);
Procedure Iz_Nachala(Var First : U; Var X : BT);
Procedure V_Spisok(Pred : U; X : BT);
Procedure Iz_Spiska(Pred : U; Var X : BT);