Estrturas Dinamicas (Ponteiros)
O que são ponteiros?
Um ponteiro apontador é um tipo especial de variável que é capaz de receber um enderenço de memória RAM relativo a um determinado tipo de dados (simples ou estruturado) e ficar como que a apontar para ele.
O que são Estruturas de Dados Dinâmicas?
Há três tipos de Estruturas de Dados Dinâmicas que são: Listas; árvores e grafos.
Neste caso apenas nos vamos concentrar nas Listas. Uma lista é simplesmente uma série de itens de informação de um determinado tipo. Existem três tipos de Listas que são os seguintes: Pilhas; Filas; Listas Ordenadas.
Pilha
Numa pilha, a inserção e a remoção de um elemento têm de ser feitas sempre no topo da estrutura. As pilhas são consideradas estruturas do tipo LIFO-Last In First Out, ou seja, o último a entrar é o primeiro a sair.
No programa que se segue tem as três operações possíveis na pilha: Inserir, Percorrer e remover.
Program Pilha ;
Type Pessoa = recordNome:string;
Prox:^Pessoa;
end;
Var Top, Px:^Pessoa;
Op:Integer;
Procedure Insere;
Begin
new(Px);
writeln ('Escreva o nome da pessoa');
Readln (Px^.Nome);
Px^.prox:=Top;
Top:=Px;
end;
Procedure Percorre;
Begin
Px:=Top;
If (Px=Nil) Then
writeln ('Pilha vazia')
else
begin
Repeat
writeln ('Nome:',Px^.Nome);
Px:=Px^.Prox;
Until (Px=Nil);
end;
end;
Procedure Remove;
Begin
If Top=Nil then
writeln ('Pilha vazia')
else
begin
Px:=Top;
writeln ('Elemento removido:',Px^.Nome);
Top:=Px^.Prox;
Dispose(Px);
end;
end;
Top:=Nil;
Repeat
writeln;
writeln ('Escolha a operação');Repeat
writeln;
writeln ('1-inserir');
writeln ('2-Percorrer');
writeln ('3-Remover');
readln (op);
Case op of
1:Insere;
2:Percorre;
3:Remove;
end;
until op=0; End.
Para testar este programa ira ter que fazer o download do Pascalzim.
Download do Pascalzim