Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
28.06.2014
Размер:
2 Кб
Скачать
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