A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula 04 – 22/03 Listas Duplamente Encadeada – Listas Encadeada Circular – Lista Duplamente Encadeada Circular.

Apresentações semelhantes


Apresentação em tema: "Aula 04 – 22/03 Listas Duplamente Encadeada – Listas Encadeada Circular – Lista Duplamente Encadeada Circular."— Transcrição da apresentação:

1 Aula 04 – 22/03 Listas Duplamente Encadeada – Listas Encadeada Circular – Lista Duplamente Encadeada Circular

2 Continuação exercício aula 15/03

3 Lista duplamente encadeadas
Lista encadeadas simples são unidirecionais, ou seja, a navegação na lista começa de um ponto, o inicio e vai até o final. Lista duplamente escadeadas são bidirecionais, ou seja, a navegação na lista pode ser feito do início até o fina ou do final até o início. Estrutura muito semelhante a lista encadeada simples porem temos um novo ponteiro no nó que faz referencia ao nó anterior. A estratégia para manipular esse tipo de lista é ter um nó cabeça, primeiro item da lista, e um nó cauda, último item da lista.

4 O nó em uma lista duplamente encadeada possui dois ponteiros um apontando para o primeiro nó anterior e outro apontando par ó próximo nó, além do campo Dado.

5 Representação gráfica de uma lista com nós

6 Representação gráfica de inserção na lista

7 Representação gráfica de exclusão na lista

8 Operações em listas duplamente encadeadas
Incluir, remover os nós em listas duplamente encadeadas requer mais trabalho pois temos o nó cabeça e o nó cauda para serem atualizados. Percorres a lista, liberar os nós alocados são operações semelhantes as listas simplesmente encadeadas.

9 Estrutura básica de um nó
PApontador = ^TItem; TItem = record Anterior: PApontador; Valor: string; Proximo: PApontador; end;

10 Incluindo um novo nó New( NoAuxiliar ); NoAuxiliar.Proximo:= LDEPrimeiroNo; NoAuxiliar.Anterior:= nil; NoAuxiliar.Valor:= InputBox( '', 'Digite o nome', '' ); if ( LDEPrimeiroNo <> nil ) and ( LDEPrimeiroNo.Anterior = nil ) then LDEPrimeiroNo.Anterior:= NoAuxiliar; LDEPrimeiroNo:= NoAuxiliar; if ( LDEPrimeiroNo.Proximo = nil ) then LDEUltimoNo:= NoAuxiliar;

11 Excluindo um nó if ( LDEPrimeiroNo.Valor = ValorASerExcluido ) then begin NoAuxiliar:= LDEPrimeiroNo; LDEPrimeiroNo:= LDEPrimeiroNo.Proximo; if ( LDEPrimeiroNo <> nil ) then LDEPrimeiroNo.Anterior:= nil; if ( NoAuxiliar = LDEUltimoNo ) then LDEUltimoNo:= nil; Dispose( NoAuxiliar ); end else

12 Excluindo um nó – continuação
NoAuxiliar:= LDEPrimeiroNo; while ( NoAuxiliar.Proximo <> nil ) do begin if ( NoAuxiliar.Proximo.Valor = ValorASerExcluido ) then NoAnterior:= NoAuxiliar; NoAserExcluido:= NoAuxiliar.Proximo; NoAnterior.Proximo:= NoAserExcluido.Proximo; if ( NoAserExcluido = LDEUltimoNo ) then LDEUltimoNo:= NoAserExcluido.Anterior else NoAnterior.Proximo.Anterior:= NoAnterior; Dispose( NoAserExcluido ); Exit(); end; NoAuxiliar:= NoAuxiliar.Proximo;

13 Percorrendo a lista – pelo último elemento
NoAuxiliar:= LDEUltimoNo; while ( NoAuxiliar <> nil ) do begin ShowMessage(NoAuxiliar.Valor) ; NoAuxiliar:= NoAuxiliar.Anterior; end;

14 Observações Para identificar o final de uma lista duplamente encadeada utilizamos o nó cauda que é uma variável especial. E continuamos a utilizar uma variável especial para identificar o primeiro nó. Sempre que efetuarmos operações de inclusão ou exclusão de itens da lista devemos nós certificar que estamos atualizando corretamente o nó anterior e o nó atual do item.

15 Lista Encadeada Circular
Possui a mesma estrutura de uma lista simplesmente encadeada Porem o último item da lista aponta para o primeiro item da lista Passamos a ter o nó atual ao invés do nó cabeça

16 Listas Duplamente Encadeada Circular
Possui a mesma estrutura de uma lista duplamente encadeada. O nó anterior do primeiro elemento aponta para o último O próximo no do último elemento apontar para o primeiro elemento da lista.

17 Exercícios Download : aula04 – exercícios


Carregar ppt "Aula 04 – 22/03 Listas Duplamente Encadeada – Listas Encadeada Circular – Lista Duplamente Encadeada Circular."

Apresentações semelhantes


Anúncios Google