Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Чет про программирование / туф / 15_lists / stack
.pas {$mode objfpc}
type
PElem = ^TElem;
TElem = record
data: integer;
next: PElem;
end;
var
stack: PElem;
i: integer;
procedure push(var stack: PElem; data: integer);
var
new_elem: PElem;
begin
new(new_elem);
new_elem^.data := data;
new_elem^.next := stack;
stack := new_elem;
end;
procedure pop(var stack: PElem);
var
t: PElem;
begin
if stack = nil then exit;
t := stack^.next;
dispose(stack);
stack := t;
end;
function top(stack: PElem): integer;
begin
if stack = nil then
result := 0
else
result := stack^.data;
end;
begin
stack := nil;
push(stack, 1);
push(stack, 2);
push(stack, 3);
writeln(top(stack));
pop(stack);
writeln(top(stack));
end.
type
PElem = ^TElem;
TElem = record
data: integer;
next: PElem;
end;
var
stack: PElem;
i: integer;
procedure push(var stack: PElem; data: integer);
var
new_elem: PElem;
begin
new(new_elem);
new_elem^.data := data;
new_elem^.next := stack;
stack := new_elem;
end;
procedure pop(var stack: PElem);
var
t: PElem;
begin
if stack = nil then exit;
t := stack^.next;
dispose(stack);
stack := t;
end;
function top(stack: PElem): integer;
begin
if stack = nil then
result := 0
else
result := stack^.data;
end;
begin
stack := nil;
push(stack, 1);
push(stack, 2);
push(stack, 3);
writeln(top(stack));
pop(stack);
writeln(top(stack));
end.