1 / 16

Listas Encadeadas

Listas Encadeadas. Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida Algoritmos e Estruturas de Dados II DCC – UFMG. info. info. info. info. prox. NULL. NULL. NULL. Listas Encadeadas. Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo

ely
Download Presentation

Listas Encadeadas

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. Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida Algoritmos e Estruturas de Dados II DCC – UFMG

  2. info info info info prox NULL NULL NULL Listas Encadeadas • Características: • Tamanho da lista não é pré-definido • Cada elemento guarda quem é o próximo • Elementos não estão contíguos na memória prox info prox Algoritmos e Estrutura de Dados II

  3. Sobre os Elementos da Lista • Elemento: guarda as informações sobre cada elemento. • Para isso define-se cada elemento como uma estrutura que possui: • campos de informações • ponteiro para o próximo elemento info prox Algoritmos e Estrutura de Dados II

  4. Último prox info info info Primeiro prox prox NULL Sobre a Lista • Uma lista é definida como um apontador para a primeira célula • Uma lista pode ter uma célula cabeça • Uma lista pode ter um apontador para o último elemento Algoritmos e Estrutura de Dados II

  5. Implementação em C typedef int TipoChave; typedef struct { TipoChave Chave; /* outros componentes */ } TipoItem; typedef struct Celula_str *Apontador; typedef struct Celula_str { TipoItem Item; Apontador Prox; } Celula; typedef struct { Apontador Primeiro, Ultimo; } TipoLista; Algoritmos e Estrutura de Dados II

  6. Cabeça NULL Cria Lista Vazia Primeiro Último void FLVazia(TipoLista *Lista) { Lista->Primeiro = (Apontador) malloc(sizeof(Celula)); Lista->Ultimo = Lista->Primeiro; Lista->Primeiro->Prox = NULL; } int Vazia(TipoLista Lista) { return (Lista.Primeiro == Lista.Ultimo); } Algoritmos e Estrutura de Dados II

  7. Último prox info info info prox prox NULL Inserção de Elementos na Lista Primeiro • 3 opções de posição onde pode inserir: • 1ª. posição • última posição • Após um elemento qualquer E Algoritmos e Estrutura de Dados II

  8. Novo prox Último prox info info info info prox prox NULL NULL Inserção na Primeira Posição Primeiro Algoritmos e Estrutura de Dados II

  9. Novo prox prox info info info info prox prox NULL NULL Inserção na Última Posição Último Primeiro Algoritmos e Estrutura de Dados II

  10. Novo prox prox info info info info prox NULL NULL prox Inserção na Após o Elemento E Primeiro Último Elem E Algoritmos e Estrutura de Dados II

  11. Inserção de Elementos na Lista • Na verdade, as 3 opções de inserção são equivalentes a inserir após uma célula apontada por p • 1ª. posição (p é a célula cabeça) • Última posição (p é o último) • Após um elemento qualquer E (p aponta para E) Algoritmos e Estrutura de Dados II

  12. Último prox info info info prox prox NULL Retirada de Elementos na Lista • 3 opções de posição de onde pode retirar: • 1ª. posição • última posição • Um elemento qualquer E Algoritmos e Estrutura de Dados II

  13. Temp Último prox info info info prox prox NULL Retirada do Elemento na Primeira Posição da Lista Primeiro Algoritmos e Estrutura de Dados II

  14. prox Anterior info info info Elem E prox prox NULL Retirada do Elemento E da Lista Último Primeiro Algoritmos e Estrutura de Dados II

  15. prox info info info Anterior prox prox NULL Retirada do Último Elemento da Lista NULL Último Primeiro Algoritmos e Estrutura de Dados II

  16. Exercícios • Implemente uma função que, dada uma lista encadeada e uma determinada chave C, remove o elemento com essa chave • Implemente uma função que remova todos os elementos de valor par de uma lista encadeada Algoritmos e Estrutura de Dados II

More Related