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

UptoLike

Unit L1List;
{ Реализация L1списка на Турбо-Паскале }
Interface
Uses Global; { модуль, в котором описан тип элементов списка El }
{============================================================= }
{Ссылочное представление в динамической памяти }
type { El базовый тип для элементов списка (описан в Global)}
Link = ^ Node; {ссылка на звено в цепи }
RepList = record {формуляр ("представитель") списка}
Head, Cur, PredCur : Link;
end { RepList };
=
record { звено цепи ( списка ): }
Info : El; { - содержимое (элемент списка) }
Next : Link ; { - ссылка на следующее звено }
end { Node };
L1_list = ^ RepList; {Л1–список}
{==============================================================}
{1}function Create : L1_list; {Начать работу (создать пустой список
)}
{2}function Null ( l : L1_list ) : Boolean; {Список пуст ?}
{3}procedure Empty ( l : L1_list ) ; {Сделать список пустым }
{4}procedure GoBOL ( l : L1_list ) ; {Встать в начало списка }
{5}function EOList ( l : L1_list ) : Boolean; {Конец списка }
{6}procedure GoNext ( l : L1_list ) ; {Перейти к следующему элементу
списка;
отказ: в состояниях Null, EOList}
{7}procedure GetEl ( l : L1_list; var e : El ); {Получить текущий элемент
списка; отказ: в состояниях
Null, EOList}
{8}procedure Insert ( l : L1_list; e : El ); {Добавить элемент перед теку-
щим,
текущим сделать новый элемент}
{9}procedure Replace ( l : L1_list; e : El ); {Заменить текущий элемент спи-
ска;
отказ: в состояниях Null, EOList}
{10}procedure Delete ( l : L1_list ) ; {Удалить текущий элемент списка,
сделать текущим прежний следующий;
отказ: в состояниях Null, EOList}
{11} procedure Destroy ( var l : L1_list ); {Закончить работу
(ликвидировать список)}
{==============================================================}
Implementation
... {Здесь размещаются блоки процедур и функций }
end {L1List}.
Рис. 1.8. Макет модуля L1List
10
Unit L1List;
    { Реализация L1−списка на Турбо-Паскале                }
Interface
Uses Global; { модуль, в котором описан тип элементов списка El }
{============================================================= }
 {Ссылочное представление в динамической памяти }
 type        { El − базовый тип для элементов списка (описан в Global)}
     Link = ^ Node;          {ссылка на звено в цепи     }
RepList = record             {формуляр ("представитель") списка}
Head, Cur, PredCur : Link;
end { RepList };
= record          { звено цепи ( списка ):            }
      Info : El;      { - содержимое (элемент списка) }
      Next : Link ; { - ссылка на следующее звено        }
end { Node };
      L1_list = ^ RepList; {Л1–список}
{==============================================================}
{1}function Create : L1_list;                   {Начать работу (создать пустой список
)}
{2}function Null ( l : L1_list ) : Boolean;           {Список пуст ?}
{3}procedure Empty ( l : L1_list ) ;                  {Сделать список пустым }
{4}procedure GoBOL ( l : L1_list ) ;                  {Встать в начало списка }
{5}function EOList ( l : L1_list ) : Boolean;         {Конец списка }
{6}procedure GoNext ( l : L1_list ) ;                {Перейти к следующему элементу
списка;
                             отказ: в состояниях Null, EOList}
{7}procedure GetEl ( l : L1_list; var e : El );       {Получить текущий элемент
списка;                                                           отказ: в состояниях
Null, EOList}
{8}procedure Insert ( l : L1_list; e : El );          {Добавить элемент перед теку-
щим,
                             текущим сделать новый элемент}
{9}procedure Replace ( l : L1_list; e : El );         {Заменить текущий элемент спи-
ска;
                             отказ: в состояниях Null, EOList}
{10}procedure Delete ( l : L1_list ) ;          {Удалить текущий элемент списка,
                             сделать текущим прежний следующий;
                             отказ: в состояниях Null, EOList}
{11} procedure Destroy ( var l : L1_list );     {Закончить работу
                                    (ликвидировать список)}
{==============================================================}
Implementation
... {Здесь размещаются блоки процедур и функций }
end {L1List}.

                            Рис. 1.8. Макет модуля L1List



                                         10