1 / 132

ESTRUTURA DE DADOS

ESTRUTURA DE DADOS. Aula 10 – Listas Duplamente Encadeadas. Atenção aos Temas Principais dessa Aula. Conteúdo Programático desta aula. Compreender o conceito de Lista Duplamente Encadeada; Compreender opera ç ões com LDE sem ou com descritor;. Direto ao Assunto.

kylar
Télécharger la présentation

ESTRUTURA DE DADOS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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)

More Related