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

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

procedure ClearLifo(var lifo: Lifo); {1) Џа®жҐ¤га  ®зЁйҐ­Ёп б⥪ }
function EmptyLifo(lifo: Lifo): boolean; {2) ”г­ЄжЁп Їа®ўҐаЄЁ, Їгбв «Ё б⥪?}
procedure AddLifo(var lifo: Lifo; data: Info); {3) Џа®жҐ¤га  ¤®Ў ў«Ґ­Ёп н«Ґ¬Ґ­в  ў б⥪}
procedure GetLifo (var lifo: Lifo; var k: info); {4) ”г­ЄжЁп ў®§ўа й Ґв н«Ґ¬Ґ­в б⥪ }
procedure DelBeginLifo(var lifo: Lifo); {5) “¤ «Ґ­ЁҐ ўҐаиЁ­л б⥪ }
function MemoryControl: boolean; {6) …бвм «Ё бў®Ў®¤­ п Ї ¬пвм}

implementation


procedure ClearLifo(var lifo: Lifo);
begin 
	while lifo.start <> nil do lifo.start:=lifo.start^.next;
end;

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

procedure AddLifo(var lifo: Lifo; data: Info);
var tmp: TLifo;
Begin
	new(tmp);
	tmp^.next:=lifo.start;
	tmp^.inf:=data;
	lifo.start:=tmp;
	tmp:=nil;
end;

procedure GetLifo (var lifo: Lifo; var k: info);
begin
	k:=lifo.start^.inf;
end;

procedure DelBeginLifo(var lifo: Lifo);
begin
	lifo.start:=lifo.start^.next;
end;

function MemoryControl: boolean;
	begin
		MemoryControl:=MemAvail >= SizeOf(Tlifo);
	end;

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