Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
28.06.2014
Размер:
1 Кб
Скачать
unit DynFifo;

interface
type 
	Info = record
		ch: char;
	end;
	Tfifo= ^S; 
		S = record 
			Inf: info;   {‡­ зҐ­ЁҐ}
			Next: Tfifo;  {‘«Ґ¤гойЁ© ®ЎкҐЄв}
		End;
	fifo = record
		start, endl: tfifo;
	end;

procedure Clearfifo(var fifo: fifo); {1) Џа®жҐ¤га  ®зЁйҐ­Ёп ®зҐаҐ¤Ё}
function Emptyfifo(fifo: fifo): boolean; {2) ”г­ЄжЁп Їа®ўҐаЄЁ, Їгбв  «Ё ®зҐаҐ¤м?}
procedure Addfifo(var fifo: fifo; data: Info); {3) Џа®жҐ¤га  ¤®Ў ў«Ґ­Ёп н«Ґ¬Ґ­в  ў ®зҐаҐ¤м}
procedure Getfifo(fifo: fifo; VAR K: info); {4) ”г­ЄжЁп ў®§ўа й Ґв н«Ґ¬Ґ­в Ё§ ­ з «  ®зҐаҐ¤Ё}
procedure DelBeginfifo(var fifo: fifo); {5) “¤ «Ґ­ЁҐ ўҐаиЁ­л ®зҐаҐ¤Ё}
function MemoryControl: boolean; {6) …бвм «Ё бў®Ў®¤­ п Ї ¬пвм}

implementation

procedure Clearfifo(var fifo: fifo);
begin 
	while fifo.start <> nil do fifo.start:=fifo.start^.next;
	fifo.endl:=nil;
end;

function Emptyfifo(fifo: fifo): boolean;
begin
	Emptyfifo:=fifo.start=nil;   {True Ґб«Ё Їгбв, false - Ґб«Ё ­Ґ Їгбв}
end;

procedure Addfifo(var fifo: fifo; data: Info);
var tmp: Tfifo;
Begin
	new(tmp);
	tmp^.inf:=data;
	tmp^.next:=nil;
	fifo.endl^.next:=tmp;
	fifo.endl:=tmp;
	tmp:=nil;
end;

procedure Getfifo(fifo: fifo; VAR K: info);
begin
	k:=fifo.start^.inf;
end;

procedure DelBeginfifo(var fifo: fifo);
var start: tfifo;
begin
	fifo.start:=fifo.start^.next;
end;

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

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