Você está na página 1de 1

Alocao de N

http://www.icmc.sc.usp.br/%7Esce182/lestno.html#obter

ndice > Lista > Esttica Encadeada > Alocao de N

Instituto de Cincias Matemticas de So Carlos Departamento de Computao e Estatstica SCE182 - Algoritmos e Estruturas de Dados 1 Profs. Resp.: Graa Pimentel e Maria Cristina

Alocao de N
Inicializao da Lista
Inicialmente todas as posies do vetor A esto disponveis, portanto fazem parte de "Dispo".

Procedure Init(var L: Lista); Begin L.Dispo:=1; {primeiro elemento} L.Prim:=0; {lista principal est vazia} For i:=1 to n-1 do L.A[i].lig:=i+1; L.A[n].lig:=0; {receber 0 corresponde ao nil} End;

Obter_No(L, j): obtm um registro de ndice j da Dispo. Se estiver vazia, retorna zero em j. L , portanto, modificada.
Procedure Obter_No(var L: Lista; var j: endereco); Begin if L.Dispo <> 0 then { Se Dispo estiver vazia, no pode obter registro } begin j:= L.Dispo; { A dispo passa a apontar para quem ela apontava } L.Dispo:= L.A[L.Dispo].lig; end else j:= L.Dispo End;

Devolver_No(L, j): O registro de indice j, fornecido ao procedimento, passa a fazer parte da Dispo, como novo primeiro elemento. L , portanto, modificada.
Procedure Devolver_No(var L: Lista; j:endereco); Begin L.A[j].lig := L.Dispo; L.Dispo := j; End;

OBS: Dispo est vazia quando a lista est cheia Dispo est cheia quando a lista est vazia.

Lista Esttica Encadeada

1 de 1

25/2/2008 19:38