Разработать библиотеку классов для обработки списков на основе решения л.р.1 предмета "Алгоритмы и структуры данных". Проверить работоспособность классов библиотеки.
Состав библиотеки:
TListAction=procedure(Node:TANode) of object;
Поля: fHead:TANode; Методы: (студент должен корректно квалифицировать методы с помощью ключевых слов abstract, virtual, class, override и др.) // конструкторы Constructor Create; Constructor Create(filename:string); Constructor Create(Source:TAlist); function CreateElement(pdata:pointer):TANode; // деструкторы Destructor Destroy; // модификаторы function AddFirstElement(Node:TANode):TANode; function AddLastElement(Node:TANode):TANode; function InsertElementAfter(prevNode:TANode; Node:TANode):TANode; function InsertElementBefore(nextNode:TANode; Node:TANode):TANode; function DeleteFirstElement():TANode; function DeleteLastElement():TANode; function DeleteElement(Node:TANode):TANode; function DeleteElementAfter(prevNode:TANode):TANode; function DeleteElementBefore(nextNode:TANode):TANode; // селекторы function GetHead():TANode; function GetNextElement(prevNode:TANode):TANode; function GetPrevElement(nextNode:TANode):TANode; // итераторы Procedure Store(filename:string); procedure ListAction(action:TListAction); procedure ListActionReverse(action:TListAction); procedure Show; procedure ShowReverse; function First:TANode; // сброс итератора, получение первого элемента function Next:TANode; // инкремент итератора, получение следующего элемента procedure DisposeList(DisposeAction:TListAction=nil);