Você está na página 1de 6

PROFESSORA

MERRISMOZER
PsGraduao
FormaoPedaggicaemMatemtica
ConsultoriaeEstratgiaEmpresarial
MetodologiaeDidticadeEnsino
Graduao
TecnologiaemProcessamentodeDados
LINGUAGEMDEPROGRAMAO
EESTRUTURADEDADOS
Aula2
AlgoritmoeEstruturadeDados
ALOCAOENCADEADA
Naalocaoseqencial:
x
1
oprimeironodo;
x
n
oltimonodo;
x
k
precedex
k+1
;
Nodossoalocadosemvetor;
x
k
ex
k+1
ocupamposiescontnuasnovetor.
Vetor V
V[1] V[2] V[3] V[4]
Felipe
Fernando
Amanda
Fernando Amanda Felipe
Comeo Fim
Fila
V[1] V[2] V[3] V[4]
Topo
V[1]
V[2]
V[3]
V[4]
Pilha
Existeumadiferenteformaderepresentar
arelaodeprecednciaindependente
dosdadosestaremalocadosemposies
contguasdememria;
UsodeALOCAOENCADEADA Criao
decadeiasouligaesentreosnodos;
Vantagens:Melhorocupaodememria.
Oque aalocaoencadeada?
Mecanismoqueestabelecearelao
deprecednciaentreosnodosnode
formafsica,massimdeformalgica.
Acadanodox
k
ser acrescidoumcampo
contendooendereodememriadex
k+1
.
Arelaoentreosnodosdeixade
serumarelaodeprecedncia
simplesparaserumarelao
funcionaldeprecedncia.
Qualquerrelaoque,paracadaregistroT1
leveanomximoumregistrodotipoT2
ser chamadaderelaofuncional.
Fernando
Fernando
Alocaoencadeada:
Nodoarmazenainformaoeendereo
donodoseguinte;
Alocaoseqencial:
Nodoarmazenaapenasumainformao;
Fernando
Partedoendereamento:
Dadostiporeferncia,
ouseja,umindicador
delocalizaodoprximo
nodoasertrabalhado;
Partedainformao:
Dadostipostring,integer,
real,etc....
Partedoendereamentoser entoa
responsvelporgerenciartodooprocesso
depercorrimentodosdadosarmazenados.
Sabendosealocalizaoapenasdeumdos
nodospoderemosacessartodososseus
nodossucessores,mesmoessesestando
totalmentedispersosnamemria.
Fernando 1430
Alfredo 1023
Paula 998
Joo

Janaina 616
Cludio 714
Felipe

Sandra 897
Amanda 565
Paulo 407
RefernciaInicial105 QualaRelaoFuncional?
osmboloquedesigna
ausnciadainformao
ATIVIDADEEMSALA
Fernando 1430
Alfredo 1023
Paula 998
Joo

Janaina 616
Cludio 714
Felipe

Sandra 897
Amanda 565
Paulo 407
osmboloquedesigna
ausnciadainformao
RefernciaInicial407 QualaRelaoFuncional?
Exemploprtico:
Suponhaarelaofuncional:
Flvia filhadeAndr eSandra;
Andr filhodeJooeMaria;
Sandra filhadeMauroeClaudia.
Problema:Armazenartodosos
nomeserelacionarfilhosepais.
Flvia
Dadosaarmazenar:
Andr
Sandra
Joo
Maria
Mauro
Cludia
Endereo
Informao
Endereopai
Endereome
ATIVIDADEEMSALA
ATIVIDADEEMSALA
Monteummodelosimplesde
alocaoencadeadacomnmeros
de1a10(5minutos).
A
B
C
B 1
A C 2
B 3
Detalhesdenotao:
Supondoqueexistaumapontador
RreferenciandoonododeFlvia
(R=667),teremosanotao:
R.nome=Flvia;
R.PAI.nome=Andr;
R.MAE.nome=Sandra;
R.MAE.PAI.nome=Mauro;
768 Flvia 417 667
791 Andr 602 417
115 Sandra 744 768
744
Mauro

Entomanipularendereosde
memria essencialnaalocao
encadeada?
Nonecessariamente;podemos
manipularoendereode
memriadiretamenteoucriar
meiosalternativosparasimulara
atuaodesses;
Nocasodamanipulaodos
endereosdememria,como
funcionaoprocessodese
armazenarumcontedoesaber
aposiodememriaondeesse
seencontraeainda,quandono
precisomaisdainformaocomo
descartaraposiousadae
deixlanovamentedisponvel?
Paraarmazenarumcontedo,usase
ocomandoaloc solicitandoaalocao
deumareadememria,segundoanotao:
aloc P;
OndeP umponteiroquearmazena
oendereodememriadisponibilizado;
paraarmazenarocontedobastaento:
P.NOME:=Flvia;
Quandonoprecisamosmaisdavarivel
referenciadaporPusamoso
comando:
lib P;
Areadememriatornase
disponvelepoder serreutilizada;
Usodesetasparaestabelecerarelaofuncional...
Infelizmente noimplementvel
Flvia
Andr
Sandra
Joo
Maria Mauro
Cludia
Podemosaindaimplementarlistasencadeadas
atravsdevetores;
Necessrioumaalteraoestruturalnonodo
dovetor.
de
V[1] V[2] V[3] V[7]

para
V[1] V[2] V[3] V[7]

V[1] V[2] V[3] V[7]

Comandodedefiniodeumvetornormal:
V=array[1..7]ofstring;
Tipododado
Tamanhodovetor
Nomedovetor
V[1] V[2] V[3] V[7]

Comandosdedefiniodeumvetorderegistro:
Definiodomodelodoregistro:
Reg=registerof(NOME:string;
PAI:pointer;
MAE:pointer;);
Definiodovetor:
V=array[1..7]ofReg;
Poderamosterento:
0 Cladia 0
0 Joo 0
0 Mauro 0
7 Andr 3
6 Flvia 2
1 Sandra 5 0 Maria 0
assumeovalor0.
V[1] V[2]
V[3] V[4]
V[5] V[6] V[7]
SupondoqueexistaumapontadorRreferenciando
aposiodeVquecontmFlvia(Ratuacomondice
dovetoreR=4),teremosanotao:
V[R].NOME=Flvia;
V[V[R].PAI].NOME=Andr;
V[V[R].MAE].NOME=Sandra;
V[V[V[R].MAE].PAI].
NOME=Mauro.
768 Flvia 417 667
791 Andr 602 417
115 Sandra 744
768
744 Mauro
R.nome=Flvia...................
R.PAI.nome=Andr ........
R.MAE.nome=Sandra ....
R .MAE.PAI.nome=Mauro
V[R].NOME=Flvia
V[V[R].PAI].NOME=Andr
V[V[R].MAE].NOME=Sandra
V[V[V[R].MAE].PAI].NOME=Mauro
Nosepodeteracessoaovalornumrico
deumapontador,muitomenosrealizar
operaesaritmticassobreele;
Agernciadeespaodisponvelpara
alocaoeliberaoficaacargodo
prprioprogramador.
Detalhesquantoautilizaodos
ndicescomoapontadores:
2013 Todososdireitosreservados.Uso
exclusivonoSistemadeEnsinoPresencial
Conectado

Você também pode gostar