ESTRUTURA DE DADOS - PowerPoint PPT Presentation

slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ESTRUTURA DE DADOS PowerPoint Presentation
Download Presentation
ESTRUTURA DE DADOS

play fullscreen
1 / 132
ESTRUTURA DE DADOS
108 Views
Download Presentation
kylar
Download Presentation

ESTRUTURA DE DADOS

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. ESTRUTURA DE DADOS Aula 10 – Listas Duplamente Encadeadas

  2. Atenção aos Temas Principais dessa Aula

  3. Conteúdo Programático desta aula • Compreender o conceito de Lista Duplamente Encadeada; • Compreender operações com LDE sem ou com descritor;

  4. Direto ao Assunto

  5. Nas listas duplamente ligadas, cada nó possui dois ponteiros, sendo que um aponta para o nó anterior e o outro, para o nó posterior. Sendo assim, a lista pode ser “percorrida” começando por qualquer extremidade. Um ponteiro ant aponta para o nó que precede enquanto que o ponteiro prox, aponta para o nó que o sucede.

  6. Os algoritmos de algumas operações com LDE(listas ligadas) têm um certo grau de complexidade, mas facilitam na manipulação da LDE. A LDE é indicada quando precisarmos percorrer a lista do fim para o início.

  7. Quando usamos LDE sem descritor, as funções básicas de inserção, remoção, busca, conta nós e impressão, quase não têm diferença para as LE exceto pelo ponteiro anterior. Não existe a necessidade de dimensionar o número de nós porque a alocação vai sendo feita de acordo com a necessidade.

  8. Criar lista • Liberar lista • Verificar se a lista está vazia • Inserir na primeira posição • Inserir na última posição • Remover o primeiro elemento da lista • Remover o último elemento da lista • Remover um elemento por busca • Exibir lista do primeiro para o último nó • Exibir lista do último para o primeiro nó • Contar número de nós, etc. Algumas operações realizadas com uma LDE

  9. Para entendimento das funções Definido a struct struct listaDE { int info; struct listaDE* ant; struct listaDE* prox; };

  10. Para entendimento das funções Inicialização Definido a struct struct listaDE { int info; struct listaDE* ant; struct listaDE* prox; }; listaDE *lista= NULL;

  11. insereInicio novo

  12. insereInicio 23 novo

  13. insereInicio LISTA 23 novo

  14. insereInicio LISTA NULL 23 novo

  15. insereInicio LISTA NULL 23 novo LISTA if

  16. insereInicio LISTA NULL 23 novo lista = insere(lista, valor); LISTA

  17. insereInicio

  18. insereFim novo

  19. insereFim 23 novo

  20. insereFim NULL 23 novo

  21. insereFim NULL LISTA 23 novo if

  22. insereFim NULL LISTA 23 novo LISTA if

  23. insereFim NULL 23 novo else LISTA aux

  24. insereFim NULL 23 novo else LISTA novo aux

  25. insereFim NULL aux 23 novo else LISTA novo aux

  26. insereFim NULL aux 23 novo else LISTA novo aux lista = insere(lista, valor);

  27. insereFim

  28. exibeIpF

  29. exibeIpF

  30. exibeFpI

  31. exibeFpI

  32. contaNós

  33. contaNós

  34. busca

  35. remove

  36. remove

  37. remove

  38. A REMOÇÃO DE UM NÓ - Um ponto crítico nas LDE p->ant->prox = p->prox; p->prox->ant = p->ant;

  39. 1) Através de seu ponteiro ant, p apontava para o nó anterior cuja representação é: p->ant. 2) Esse endereço foi copiado para o ponteiro ant do próximo nó acessado por p->prox->ant. (linha verde) 3) Sendo assim, após a remoção de p, p->prox ->ant apontará para o nó anterior ao que foi removido.(seta azul)

  40. 1) Através de seu ponteiro ant, p apontava para o nó anterior cuja representação é: p->ant. 2) Esse endereço foi copiado para o ponteiro ant do próximo nó acessado por p->prox->ant. (linha verde) 3) Sendo assim, após a remoção de p, p->prox ->ant apontará para o nó anterior ao que foi removido.(seta azul)

  41. 1) Através de seu ponteiroprox,papontava para o próximo nó cuja representação é:p->prox. 2) Esse endereço foi copiado para o ponteiro prox do nó anterior acessado porp->ant->prox. (linha verde) 3) Sendo assim, após a remoção de p,p->ant->proxapontará para o nó seguinte ao que foi removido.(seta azul)

  42. 1) Através de seu ponteiroprox,papontava para o próximo nó cuja representação é:p->prox. 2) Esse endereço foi copiado para o ponteiro prox do nó anterior acessado porp->ant->prox. (linha verde) 3) Sendo assim, após a remoção de p,p->ant->proxapontará para o nó seguinte ao que foi removido.(seta azul)