Здравствуйте. Проверьте, пожалуйста, правильно ли выполнено задание: Реализуйте заданную структуру данных (двусвязный список целых чисел) в виде класса (набора классов). Не используйте стандартные классы .NET для представления коллекций ( разрешается использование только массивов).
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;
type PList = ^TList; TList = record inf : integer; prior: PList; next : PList end;
destructor TListDual.RemoveList; {уничтожение списка} var q: Plist; begin if pfirst = nil then writeln('List not init') else begin while pfirst <> nil do begin q := pfirst; pfirst := pfirst^.next; dispose(q); end; end; plast := nil; end;
procedure TListDual.Print_forward; { процедура печати элементов с первого(начало) } var start : PList; begin if pfirst = nil then writeln('List not init') else begin start := pfirst; while (start <> nil) do begin write(start^.inf, ' '); start := start^.next; end; WriteLn; end; end;
procedure TListDual.Print_back; { процедура печати элементов с последнего(начало) } var last : PList; begin if plast = nil then writeln('List not init') else begin last := plast; while (last <> nil) do begin write(last^.inf, ' '); last := last^.prior; end; WriteLn; end; end;
procedure TListDual.Insert( NewInf : integer); {процедура вставки элементов в конец списка(информационная часть) } var p : PList; begin new(p); p^.inf := NewInf; p^.next := nil; if (pfirst=nil) and (plast=nil) {если пустой список} then begin pfirst := p; pfirst^.prior := nil; end else {список не пуст, добавляем элемент в конец и корректируем указатели} begin plast^.next := p; p^.prior := plast; end; plast := p; end;
begin { TODO -oUser -cConsole Main : Insert code here } end.