You are on page 1of 2

Exerccios (listas encadeadas) 1) Declare um tipo de dados registro denominado TipoLista composto dos seguintes campos: info (inteiro)

) prox (apontador de TipoLista); 2) Criar 4 variveis apontadoras para TipoLista de nomes: primeiro, corrente, ltimo e auxiliar; 3) Considere a seguinte lista encadeada, baseada nos itens 1 e 2.

15

PRIMEIRO

CORRENTE

AUXILIAR

LTIMO

3.1) Faa um trecho de programa que insira um novo elemento na lista aps o elemento apontado por corrente, tornando-o o novo corrente; 3.2) Faa um trecho de programa que elimine o elemento corrente da lista, tornando corrente o elemento seguinte; 3.3) Faa um trecho de programa que elimine o primeiro elemento da lista; 3.4) Faa um trecho de programa que insira um novo elemento no final da lista, tonando-o corrente; 3.5) Faa um trecho de programa que conte o nmero de elementos da lista. Resoluo: Exercicio 1: type p = ^TipoLista; type TipoLista = record info : integer; prox : p; end; Exerccio 2: Var Primeiro, corrente, ultimo, auxiliar : p;

Exerccio 3: 3.1) var novo : p; n : integer; begin readln(n); new(novo);

end 3.2)

novo^.info := n; novo^.prox := corrente^.prox; corrente^.prox := novo; corrente := novo;

{considerando a lista, j com o novo elemento incluido no exercicio anterior} begin auxiliar := primeiro^.prox; auxiliar^.prox := corrente^.prox; auxiliar := corrente; corrente := corrente^.prox; dispose(auxiliar); end; 3.2) (considerando o elemento eliminado do exercicio anterior} begin auxiliar := primeiro; primeiro := auxiliar^.prox; dispose(auxiliar); end; 3.3) var novo : p; n : integer; begin readln(n); new(novo); novo^.info := n; novo^.prox := nil; ultimo^.prox := novo; ultimo := novo; corrente := novo; end; 3.4) var cont : integer; begin cont := 0; auxiliar := primeiro; while (auxiliar <> nil) do begin cont := cont + 1; auxiliar := auxiliar^.prox; end; writeln(Numero de elementos da lista = , cont); end;

You might also like