-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpilha.pas
55 lines (48 loc) · 911 Bytes
/
pilha.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
program Pilha_em_Pascal;
type
TPessoa = record
nome: string;
idade: integer;
sexo: char;
end;
TpNodo = ^TNodo;
TNodo = record
pPessoa: TPessoa;
pProximo: TpNodo;
end;
var
pTopo: TpNodo;
pessoa1, pessoa2: TPessoa;
procedure push(pNodo: TpNodo);
begin
pNodo^.pProximo := pTopo;
pTopo := pNodo;
end;
function pop(): TpNodo;
var
pAux: TpNodo;
begin
pAux := pTopo;
if (pTopo = nil) then
writeln('Pilha vazia.')
else
pTopo := pAux^.pProximo;
pop := pAux;
end;
procedure imprimir(pNodo: TpNodo);
begin
if (pNodo <> nil) then
writeln('Nome: ',pNodo^.pPessoa.nome);
end;
Begin
pTopo := nil;
pessoa1.nome := 'Fulana';
pessoa1.idade := 18;
pessoa1.sexo := 'F';
pessoa2.nome := 'Ciclano';
pessoa2.idade := 20;
pessoa2.sexo := 'M';
push(@pessoa1);
push(@pessoa2);
imprimir(pop());
End.