Você está na página 1de 19

Estruturas de Dados Dinmicas

Lgica de Programao e ED III Profa. Myrna Amorim

Ponteiro

Varivel cujo valor um endereo de memria do computador.

var ponteiro: ^ tipo; ex: var P: ^integer;

65

1001 1002 1003

34 07

Ponteiros

Pascal

Alocao Dinmica de Memria

as variveis declaradas de um programa tm o seu endereo fixado durante a compilao;

as variveis declaradas de uma sub-rotina tm o seu endereo fixado durante sua ativao;

os ponteiros permitem, durante a execuo do programa, criar e desativar outras variveis,

denominadas dinmicas.

Ponteiros

Pascal

Alocao Dinmica de Memria


New(p); Dispose(p); aloca uma rea de memria e guarda seu endereo em p; libera a rea de memria cujo endereo est em p; o tipo para quem a varivel est apontando; o valor armazenado na posio de memria de endereo p; ponteiro que no aponta para nada (NULO); endereo de uma varivel A.

^T
p^ NIL

@A

Ponteiros

Pascal

Ponteiro exemplo 1
program exemplo1; var p: ^string; begin write ('Digite seu nome: '); new (p); readln (p^); writeln ('Boa tarde ', p^); dispose (p);

end.
Ponteiros

Pascal

Ponteiro exemplo 2
program exemplo2; var a: real; p: ^real; begin a := 3.141516; writeln(a:10:6); p:= @a; p^:= 2.717236; writeln (a:10:6); p:= nil; writeln(p^:10:6); end.
Ponteiros

Pascal

Lista Encadeada

topo

Ponteiro para o incio da lista Fim da lista

10
A5

100

05
100

F1

02
F1

B9

11
B9

NIL

NIL Lista encadeada

Ponteiros

Pascal

Lista Encadeada

Definio da lista (ns)


Type No = record item: integer; prox: ^No; end; topo: ^No;

topo

Var

10

05

02

11

NIL

Ponteiros

Pascal

Lista Encadeada

Insero de um novo n N na posio apontada por P


topo P
05 02 11

10

50

50

Ponteiros

Pascal

Lista Encadeada insero

Insero
Guarda o endereo do prximo n; O n que est sendo apontado por P aponta para N.

New(N); N^.item:=50; N^.prox:=NIL; N^.prox := P^.prox; P^.prox := N;


Ponteiros

Pascal

10

Lista Encadeada remoo

Remoo de um n logo aps a posio apontada por P

topo

P N

10

05

02

50

NIL

Ponteiros

Pascal

11

Lista Encadeada remoo

Remoo
Guarda o endereo do que ser removido em um ponteiro auxiliar N; Faz o n apontar para o que o N aponta; Liberar N.

N := P^.prox; P^.prox := N^.prox; Dispose (N);


Ponteiros

Pascal

12

Lista Encadeada - Pilha

insero (PUSH): empilha no topo remoo(POP): desempilha do topo

insere
TOPO

retira

Insero e remoo na mesma extremidade da lista.


Ponteiros

Pascal

13

Insero na Pilha
N^.prox := T; T := N;

T T

Ponteiros

Pascal

14

Remoo da Pilha
N T T N := T; T := N^.prox; Dispose (N);

Ponteiros

Pascal

15

Lista Encadeada Fila

insero: entra no fim da fila remoo: sai o primeiro da fila


entra sai FILAS

FIM

INCIO

Insero numa extremidade e remoo em outra extremidade da lista.


Ponteiros

Pascal

16

Insero na Fila
FIM INCIO

FIM N

INCIO

FIM^.prox:=N; N^.prox:=NIL; FIM:=N;


Ponteiros

Pascal

17

Remoo da Fila
FIM INCIO

N FIM INCIO

N:=INICIO; INICIO:=N^.prox; Dispose(N);

Ponteiros

Pascal

18

Referncias Bibliogrficas

Farrer et al. Pascal Estruturado. Ed. LTC Moraes. Estruturas de Dados e Algoritmos uma abordagem didtica. Ed. Futura

Markenzon e Szwarcfiter. Estruturas de Dados e

seus Algoritmos. Ed. LTC

Ponteiros

Pascal

19

Você também pode gostar