estrutura de dados aula 09 - listas simplesmente encadeadas
TRANSCRIPT
# Estrutura de Dados #
Aula 09 – Listas Simplesmente Encadeadas
Prof. Leinylson Fontinele Pereira
02:54
Na aula anterior... Aula de Revisão de CPonteirosFunçõesetc
Aula 09 – Listas Simplesmente Encadeadas
3
Introdução
02:54 Aula 09 – Listas Simplesmente Encadeadas
02:54
O que vamos aprender? Listas Simplesmente
Encadeadas#Propriedades#Operações fundamentais
Aula 09 – Listas Simplesmente Encadeadas
5
Vamos começar?
02:54 Aula 09 – Listas Simplesmente Encadeadas
02:54
Lista Dinâmica Encadeada
Aula 09 – Listas Simplesmente Encadeadas
02:54
Lista Dinâmica Encadeada
Aula 09 – Listas Simplesmente Encadeadas
Listas encadeadas ou listas ligadas representam uma seqüência de objetos na memória do computador
Exemplo: Lista de afazeres1. Comprar uma lâmpada2. Trocar uma lâmpada queimada3. Procurar uma conta no quarto4. Pagar uma conta na internet5. Desligar o computador6. Dormir
02:54
Listas Encadeadas
Aula 09 – Listas Simplesmente Encadeadas
02:54
Listas Encadeadas
Aula 09 – Listas Simplesmente Encadeadas
02:54
Listas Encadeadas: Representação por ponteiros
Aula 09 – Listas Simplesmente Encadeadas
02:54
Listas Encadeadas: Representação por ponteiros
Aula 09 – Listas Simplesmente Encadeadas
Representação gráfica de um elemento da lista:
02:54
Listas Encadeadas: Representação por ponteiros
Aula 09 – Listas Simplesmente Encadeadas
Cada item em particular de uma lista pode ser chamado de elemento, nó, célula, ou item.
O apontador para o início da lista também é tratado como se fosse uma célula (cabeça), para simplificar as operações sobre a lista.
O símbolo / representa o ponteiro nulo (NULL), indicando o fim da lista.
02:54
Inserção no Início
Aula 09 – Listas Simplesmente Encadeadas
O endereço armazenado no ponteiro p deve ser alterado para o endereço do item a ser acrescido à lista.
02:54
Inserção no Final
Aula 09 – Listas Simplesmente Encadeadas
O endereço armazenado em p será alterado caso a lista esteja vazia ou
O campo prox do último item será alterado.
02:54
Endereços e Listas
Aula 09 – Listas Simplesmente Encadeadas
O endereço de uma lista encadeada é o endereço de sua primeira célula.
Se pé o endereço de uma lista, podemos dizer, “p é uma lista”.
02:54
Lista Dinâmica Encadeada
Aula 09 – Listas Simplesmente Encadeadas
Cada elemento é tratado como um ponteiro que é alocado dinamicamente, a medida que os dados são inseridos.
Para guardar o primeiro elemento, utilizamos um ponteiro para ponteiro
Um ponteiro para ponteiro pode guardar o endereço de um ponteiro.
Assim, fica fácil mudar quem está no início da lista mudando o conteúdo do ponteiro para ponteiro.
02:54
Lista Simplesmente Encadeada
Aula 09 – Listas Simplesmente Encadeadas
O número de elementos na lista dependerá da memória disponívelNuma lista encadeada, para cada novo elemento inserido na
estrutura, alocamos um espaço de memória para armazená-lo. Desta forma, o espaço total de memória gasto pela estrutura é proporcional ao número de elementos nela armazenado.
No entanto, não podemos garantir que os elementos armazenados na lista ocuparão um espaço de memória contíguo, portanto não temos acesso direto aos elementos da lista.
Para que seja possível percorrer todos os elementos da lista, devemos explicitamente guardar o encadeamento dos elementos, o que é feito armazenando-se, junto com a informação de cada elemento, um ponteiro para o próximo elemento da lista.
02:54
Lista Simplesmente Encadeada
Aula 09 – Listas Simplesmente Encadeadas
O número de elementos na lista dependerá da memória disponível
Numa lista encadeada, para cada novo elemento inserido na estrutura, alocamos um espaço de memória para armazená-lo. Desta forma, o espaço total de memória gasto pela estrutura é proporcional ao número de elementos nela armazenado.
02:54
Lista Simplesmente Encadeada
Aula 09 – Listas Simplesmente Encadeadas
Do primeiro elemento, podemos alcançar o segundo seguindo o encadeamento, e assim por diante.
O último elemento da lista aponta para NULL, sinalizando que não existe um próximo elemento.
02:54
Inserção de um novo elemento no início da lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção do primeiro elemento da lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção de um elemento no meio da lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserção de um elemento no meio da lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Lista Dinâmica Encadeada
Aula 09 – Listas Simplesmente Encadeadas
02:54
Lista Dinâmica Encadeada
Aula 09 – Listas Simplesmente Encadeadas
Vantagens Melhor utilização dos recursos de memória
Não precisa movimentar os elementos nas operações de inserção e remoção
02:54
Lista Dinâmica Encadeada
Aula 09 – Listas Simplesmente Encadeadas
02:54
Lista Dinâmica Encadeada
Aula 09 – Listas Simplesmente Encadeadas
Desvantagens Acesso indireto aos elementos Necessidade de percorrer a lista para acessar um elemento
02:54
Lista Dinâmica Encadeada
Aula 09 – Listas Simplesmente Encadeadas
02:54
Lista Dinâmica Encadeada Quando utilizar?
Não há necessidade de garantir um espaço mínimo para a execução do aplicativo
Inserção/remoção em lista ordenada são as operações mais frequentes
Aula 09 – Listas Simplesmente Encadeadas
30
Concluindo...
02:54 Aula 09 – Listas Simplesmente Encadeadas
02:54
Nesta aula aprendemos... Listas Simplesmente
Encadeadas#Propriedades#Operações fundamentais
Aula 09 – Listas Simplesmente Encadeadas
02:54
Material: https://sites.google.com/site/leinylsonnassau
Material baseado nas aulas de:
Aula 09 – Listas Simplesmente Encadeadas
34
Prática
02:54
As aulas práticas foram baseadas no material de
Linguagem C Descomplicada , Dr. André R. Backes.
Disponível em: https://programacaodescomplicada.wordp
ress.com/Aula 09 – Listas Simplesmente Encadeadas
02:54
Lista Dinâmica Encadeada ListaDinEncad.h
Os protótipos das funções O tipo de dado armazenado na lista O ponteiro lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Lista Dinâmica Encadeada
ListaDinEncad.c O tipo de dados lista Implementar as suas funções
Aula 09 – Listas Simplesmente Encadeadas
3702:54
Definindo a Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Definindo a Lista
Aula 09 – Listas Simplesmente Encadeadas
3902:54
Criando a Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Criando a Lista
Aula 09 – Listas Simplesmente Encadeadas
4102:54
Destruindo a Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Destruindo a Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Destruindo a Lista
Aula 09 – Listas Simplesmente Encadeadas
4402:54
Tamanho da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Tamanho da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Tamanho da Lista
Aula 09 – Listas Simplesmente Encadeadas
4702:54
A Lista está Cheia?
Aula 09 – Listas Simplesmente Encadeadas
02:54
A Lista está Cheia?
Aula 09 – Listas Simplesmente Encadeadas
4902:54
A Lista está Vazia?
Aula 09 – Listas Simplesmente Encadeadas
02:54
A Lista está Vazia?
Aula 09 – Listas Simplesmente Encadeadas
5102:54
Inserindo na Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserindo na Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserindo numa Lista Vazia
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserindo no Início da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserindo no Início da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserindo no Final da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserindo no Final da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserindo de Forma Ordenada na Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserindo de Forma Ordenada na Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Inserindo de Forma Ordenada na Lista
Aula 09 – Listas Simplesmente Encadeadas
6102:54
Remoção na Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Observações sobre Remoção
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção do Início da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção do Início da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção do Meio da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção do Meio da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção do Meio da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção do Final da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção do Final da Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Remoção do Final da Lista
Aula 09 – Listas Simplesmente Encadeadas
7102:54
Consulta na Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Consulta na Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Consulta pela Posição na Lista
Aula 09 – Listas Simplesmente Encadeadas
02:54
Consulta pelo Conteúdo da Lista
Aula 09 – Listas Simplesmente Encadeadas