Добавил:
Tushkan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы / Laba10 / Lifo
.pas 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.
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.