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

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

Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida

Apresentações semelhantes


Apresentação em tema: "Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida"— Transcrição da apresentação:

1 Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida
Algoritmos e Estruturas de Dados II DCC – UFMG

2 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 info NULL Vetor x Listas: Vetor: tamanho pré-definido, sabe qual o próximo, contíguo na memória Lista: não tem tamanho pré-definido, cada um guarda quem é o próximo, espalhados pela memória Figura Cada elemento armazenado numa lista guarda um ponteiro para o próximo elemento. O último elemento da lista possui um ponteiro inválido, indicando o término da estrutura. Com isto, a partir do primeiro elemento e percorrendo-se os ponteiros, pode-se acessar todos os elementos da lista. Portanto, numa lista encadeada, as informações não estão armazenadas de forma contínua na memória. Cada informação tem seu espaço de memória e é ligada à outra através de um enlace (ponteiro). Cada elemento é uma estrutura: informações + próximo da fila. Filas e pilhas dividem características comuns: Primeiro, ambas têm regras específicas para referenciar elementos às estruturas de dados. Segundo, operações de restauração são por natureza destrutivas, isto é, acessar um elemento em uma pilha ou fila requer sua retirada. info NULL prox info prox info info NULL 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 Sobre a Lista Uma lista pode ter um apontador para o último elemento
Uma lista é definida como um apontador para a primeira célula Uma lista pode ter uma célula cabeça info prox NULL Primeiro Último 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; Apontador Primeiro, Ultimo; } TipoLista; Algoritmos e Estrutura de Dados II

6 Cria Lista Vazia Cabeça Primeiro NULL Ú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 Inserção de Elementos na Lista
info prox NULL Último 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 Inserção na Primeira Posição
info NULL Novo prox prox info prox info prox info NULL Último Primeiro Algoritmos e Estrutura de Dados II

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

10 Inserção na Após o Elemento E
Primeiro info NULL Novo prox prox info prox info prox info NULL Ú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 Retirada de Elementos na Lista
info prox NULL Último 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 Retirada do Elemento na Primeira Posição da Lista
Temp prox info prox info prox info NULL Último Primeiro Algoritmos e Estrutura de Dados II

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

15 Retirada do Último Elemento da Lista
prox info prox info prox info NULL NULL Anterior Ú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


Carregar ppt "Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida"

Apresentações semelhantes


Anúncios Google