Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
14
Добавлен:
28.06.2014
Размер:
1.89 Кб
Скачать
unit DynDeq;
interface
type
Info = record
ch: char;
end;
PTDeqItem = ^s;
s = Record
Data: Info;
next, pred: PTDeqItem;
End;
TDeq = Record
pStart, pFinish: PTDeqItem;
End;

Procedure DestroyDeq(Var Deq: TDeq); {1) ЋзЁбвЁвм ¤ҐЄ}
Function EmptyDeq(Var Deq: TDeq): Boolean; {2) Џгбв «Ё ¤ҐЄ?}
Procedure AddStartDeq(Var Deq: TDeq; data: Info); {3) „®Ў ўЁвм н«Ґ¬Ґ­в ў ­ з «® ¤ҐЄ }
Procedure AddEndDeq(Var Deq: TDeq; data: Info); {3) „®Ў ўЁвм н«Ґ¬Ґ­в ў Є®­Ґж ¤ҐЄ }
procedure GetStartDeq(Var Deq: TDeq; var k: info); {4) ‚Ґа­гвм ­ з «® ¤ҐЄ }
procedure getFinishDeq(Var Deq: TDeq; var k: info); {4) ‚Ґа­гвм Є®­Ґж ¤ҐЄ }
procedure DeleteStartDeq(Var Deq: TDeq); {5) “¤ «Ёвм ­ з «® ¤ҐЄ }
function MemoryControl: boolean; {6) …бвм «Ё бў®Ў®¤­ п Ї ¬пвм}

implementation

Procedure DestroyDeq(Var Deq: TDeq);
var k: info;
Begin
While Deq.pStart<>nil Do deq.pstart:=deq.pstart^.next;
deq.pfinish:=nil;
End;

Function EmptyDeq(Var Deq: TDeq): Boolean;
Begin
EmptyDeq := (Deq.pStart = nil) and (Deq.pFinish = nil);
End;

Procedure AddStartDeq(Var Deq: TDeq; data: Info);
Var u: PTDeqItem;
Begin
new(u);
u^.next := Deq.pStart;
u^.Data := data;
u^.pred:=nil;
Deq.pStart^.pred := u;
Deq.pStart := u;
u:=nil;
End;

Procedure AddEndDeq(Var Deq: TDeq; data: Info);
Var u: PTDeqItem;
Begin
new(u);
u^.next := nil;
u^.pred := Deq.pFinish;
u^.Data := data;
Deq.pFinish^.next := u;
Deq.pFinish := u;
u:=nil;
End;

procedure GetStartDeq(Var Deq: TDeq; var k: info);
Begin
k:=Deq.pstart^.data;
End;

procedure getFinishDeq(Var Deq: TDeq; var k: info);
begin
k:=Deq.pfinish^.data;
End;

procedure DeleteStartDeq(Var Deq: TDeq);
begin
Deq.pstart:=Deq.pstart^.next;
end;

function MemoryControl: boolean;
begin
MemoryControl:=MaxAvail >= SizeOf(PTDeqItem);
end;

End.
Соседние файлы в папке Laba10