Algoritmos e Estruturas
de Dados
Listas Encadeadas
Aula 04
Prof. Ivan José dos Reis Filho
Listas encadeada
O que é?
– É um tipo abstrato de dados que apontam para o próximo
elemento da lista;
– Para “ter” uma lista encadeada, basta guardar seu primeiro
elemento, e seu último elemento aponta para uma célula nula;
– Organizar os dados de forma Linear ou Dinâmico.
Como assim Linear?
Existem estruturas de dados em que os elementos
estão em níveis diferentes;
Por exemplo, um árvore binária:
Como assim dinâmico?
Vetores são estruturas que precisam ter seu tamanho
bem definidos (C/C++)!
int num[3];
Lista podem crescer até a memória estourar!
Listas Encadeadas
Porque usar listas encadeadas e não vetores?
Listas Encadeadas
Porque usar listas encadeadas e não vetores ou lista
simples?
Vetor
●
Ocupa um espaço contíguo na memória
●
Permite acesso randômico aos elementos
●
Deve ser dimensionado com um número máximo de
elementos
Listas Encadeadas
Porque usar listas encadeadas e não vetores?
Lista encadeada
●
Sequência encadeada de elementos, chamados de nós
da lista
●
Nó da lista é representado por dois campos
– Informação e ponteiro para próximo elemento
Listas Encadeadas em Python
10 7 12 Nenhum
3º Elemento 2º Elemento 1º Elemento
Estrutura do nodo
10
dado proximo_nodo
Estrutura de toda a lista
cabeça
Nenhum
Listas encadeadas
Função que insere elemento no início (1ª chamada)
cabeça
cabeça
# 1) # 2) # 3)
novo_dado novo_dado Nenhum novo_dado Nenhum
novo_nodo novo_nodo novo_nodo
Listas encadeadas
Função que insere elemento no início (2ª chamada)
cabeça cabeça
# 1) # 2) # 3)
novo_dado novo_dado 10 Nenhum novo_dado 10 Nenhum
novo_nodo novo_nodo novo_nodo
Listas encadeadas
Simulação #01
cabeça cabeça cabeça
Nenhum 5 Nenhum
10 5 Nenhum
novo_nodo novo_nodo
Exercício 01
1. Defina a estrutura do nodo
dado proximo_nodo
2. Cria a lista vazia cabeça
Nenhum
3. Crie o método para inserir no começo
cabeça
cabeça
# 1) # 2) # 3)
novo_dado novo_dado Nenhum novo_dado Nenhum
novo_nodo novo_nodo novo_nodo
Listas encadeadas em Python
Função que insere elemento no final/depois
Listas encadeadas em Python
Simulação #02
Listas encadeadas em Python
Função para buscar um valor
Listas encadeadas em Python
Simulação #03
Listas encadeadas em Python
Função para remover um elemento
Listas encadeadas em Python
Simulação #04
Exercícios
1. Implementar as funções apresentadas na aula e incluir um
Menu para o usuário poder acionar as opções como ele
desejar.
2. Crie uma função para inserir um elemento no final da lista
encadeada.
Exercícios
3. Crie uma função para remover o último elemento da lista
4. Cria uma agenda que guarde os nomes dos contatos (em
ordem alfabética), telefone e e-mail, alterando o programa de
listas encadeadas da aula.
aLista
Abadia Andréia Andria
34-3491-0000 34-3491-9001 34-3491-1000 Null
[email protected] [email protected] [email protected]
Agenda
Próximos assuntos:
– Listas duplamente encadeadas
– Listas circulares