Динамические структуры данных. Алексеев А.Ю - 13 стр.

UptoLike

вый элемент списка s становится первым элементом списка свободной памяти (в
результате "опустошаемый" список сцепляется со списком свободной памяти).
Unit L1ListV; { Реализация ограниченного L1-списка на Турбо-Паскале }
Interface
Uses Global;{модуль, в котором описан тип элементов списка El }
{=============================================================}
{ Ссылочное представление на базе вектора }
{const MemMaxSize = максимальный размер "рабочей" памяти,
описание дано в модуле Global }
type
Index = 0..MemMaxSize;
Link = Index; { ссылка на звено цепи }
формуляр ("представитель") списка: }
RepList = record
Head, Cur, PredCur : Link;
end {RepList} ;
L1_listV = RepList; {Л1–список=формуляр списка }
{============================================================ }
{1} procedure Create ( var l: L1_listV );
{ начать работу ( создать пустой список ) }
{2} function Null ( l : L1_listV ) : Boolean; { список пуст }
{3} procedure Empty ( var l : L1_listV ) ; { сделать список пустым }
{4} procedure GoBOL ( var l : L1_listV ) ; { встать в начало списка }
{5} function EOList ( l : L1_listV ) : Boolean; { конец списка }
{6}procedure GoNext ( var l : L1_listV ) ;
{ перейти к следующему элементу списка; отказ: в состояниях Null, EOList }
{7} procedure GetEl ( l : L1_listV; var e : El );
{ получить текущий элемент списка; отказ: в состояниях Null, EOList }
{8} procedure Insert ( var l : L1_listV; e : El );
{ добавить элемент перед текущим, текущим сделать новый элемент }
{9} procedure Replace ( l : L1_listV; e : El );
{ заменить текущий элемент списка; отказ: в состояниях Null, EOList }
{10} procedure Delete ( var l : L1_listV ) ;
{ удалить текущий элемент списка, сделать текущим прежний следующий; }
{ отказ : в состояниях Null, EOList }
{11} procedure Destroy ( var l : L1_listV );
{ закончить работу (ликвидировать список) }
{12} function Not_full : Boolean;
{ в "рабочей" памяти есть место для размещения элемента списка }
Рис. 1.11. Секция Interface модуля L1ListV
13
вый элемент списка s становится первым элементом списка свободной памяти (в
результате "опустошаемый" список сцепляется со списком свободной памяти).



Unit L1ListV; { Реализация ограниченного L1-списка на Турбо-Паскале }
Interface
Uses Global;{модуль, в котором описан тип элементов списка El }
{=============================================================}
{             Ссылочное представление на базе вектора                }
{const MemMaxSize = максимальный размер "рабочей" памяти,
               описание дано в модуле Global }
type
      Index = 0..MemMaxSize;
      Link = Index; { ссылка на звено цепи }
        формуляр ("представитель") списка: }
RepList = record
Head, Cur, PredCur : Link;
end {RepList} ;
     L1_listV = RepList;       {Л1–список=формуляр списка }
{============================================================ }
{1} procedure Create ( var l: L1_listV );
{ начать работу ( создать пустой список ) }
{2} function Null ( l : L1_listV ) : Boolean;     { список пуст }
{3} procedure Empty ( var l : L1_listV ) ;        { сделать список пустым }
{4} procedure GoBOL ( var l : L1_listV ) ;        { встать в начало списка }
{5} function EOList ( l : L1_listV ) : Boolean; { конец списка }
{6}procedure GoNext ( var l : L1_listV ) ;
{ перейти к следующему элементу списка; отказ: в состояниях Null, EOList }
{7} procedure GetEl ( l : L1_listV; var e : El );
{ получить текущий элемент списка; отказ: в состояниях Null, EOList }
{8} procedure Insert ( var l : L1_listV; e : El );
{ добавить элемент перед текущим, текущим сделать новый элемент }
{9} procedure Replace ( l : L1_listV; e : El );
{ заменить текущий элемент списка; отказ: в состояниях Null, EOList }
{10} procedure Delete ( var l : L1_listV ) ;
{ удалить текущий элемент списка, сделать текущим прежний следующий; }
{ отказ : в состояниях Null, EOList }
{11} procedure Destroy ( var l : L1_listV );
{ закончить работу (ликвидировать список) }
{12} function Not_full : Boolean;
{ в "рабочей" памяти есть место для размещения элемента списка }


                    Рис. 1.11. Секция Interface модуля L1ListV



                                       13