Você está na página 1de 15

Aula prtica 12 Listas Encadeadas Monitoria de Introduo Programao

Roteiro

Listas Encadeadas
Definio Vantagens Desvantagens Simples Duplas Circulares

Duvidas Exerccios

Listas Encadeadas

Lista Encadeada uma estrutura de dados projetada para armazenar sequncias de dados. Seu funcionamento se baseia no uso de estruturas chamadas ns, que guardam a localizao do prximo n, permitindo o acesso de toda a sequncia de dados. Para acessar os seus elementos, s necessrio ter uma referencia para o primeiro elemento da lista.

usada para implementar outros tipos abstratos de dados como pilhas, filas, filas duplas, e outros.

Listas Encadeadas - Vantagens

Os ns so armazenados em lugares diferentes na memria, o que permite seu funcionamento em memrias muito fragmentadas, alm de no desperdiar memria. A insero e remoo de elementos simples, no precisando reorganizar toda a lista encadeada cada operao.

Listas Encadeadas - Desvantagens

Cada n precisar de, no mnimo, uma referencia para o prximo, usando memria para um ponteiro por cada n. O acesso de cada elemento feito percorrendo a lista at aquele elemento, o que mais custoso que usar aritmtica de ponteiros para achar o elemento necessrio.

Listas Encadeadas - Simples

Numa lista encadeada simples, cada n armazena o elemento e uma referncia para o prximo n. O ltimo n tem como prximo n um valor invlido, para indicar o fim da lista.

Listas Encadeadas - Simples

Em C, uma estrutura n:

Criao de um n ( ou comeo de lista):

Listas Encadeadas - Simples

Insero na lista simples:

Listas Encadeadas - Simples

Remoo na lista simples:

Listas Encadeadas - Simples

Busca na lista simples:

Listas Encadeadas - Dupla

Numa lista encadeada dupla, cada n armazena o elemento, uma referncia para o prximo n, e uma referncia para o n anterior. O ltimo n tem como prximo n um valor invlido, para indicar o fim da lista, e o primeiro n tem como anterior um valor invlido para indicar o comeo da lista. Ao contrrio da lista simples, na lista dupla podemos acessar todos os ns a partir de qualquer n da lista.

Listas Encadeadas - Circular

Numa lista encadeada circular, cada n armazena o elemento e uma referncia para o prximo n. O ltimo n tem como prximo n o primeiro n, dando seu comportamento circular. Com isso, no temos um primeiro n, mas sim um n que usamos para encontrar a lista. Como na lista dupla, podemos acessar todos os ns a partir de qualquer n da lista.

Listas Encadeadas

Com esses tipos de listas podemos montar outros, como listas circulares duplas, listas encadeadas triplas (se isso fizer sentido para o problema a ser resolvido), e o que sua imaginao quiser.

Dvidas?

Exerccio

Implemente uma lista telefnica (nome e telefone). Os contatos devem ser organizados em ordem alfabtica. Caso seja pedido um nome que no tenha sido cadastrado seu programa deve imprimir uma mensagem de aviso.