Aula Prática 12 Listas Encadeadas Monitoria 2011.2.

Post on 07-Apr-2016

230 views 4 download

Transcript of Aula Prática 12 Listas Encadeadas Monitoria 2011.2.

Aula Prática 12

Listas Encadeadas

Monitoria 2011.2

Listas Encadeadas Listas Encadeadas são usadas para dois

propósitos:Criar vetores de tamanhos desconhecidos

na memóriaArmazenar bancos de dados em disco.

A lista ligada permite que se insira e elimine itens rapidamente sem re-arranjar todo o conjunto de dados.

Listas Encadeadas Listas encadeadas podem ser de ligação

simples, ligação dupla ou ligação circular.

Uma lista de ligação simples contém uma ligação para o próximo item de dado.

Obs.: O ponteiro do último elemento deve apontar para NULL.

Listas Encadeadas Uma lista de ligação dupla contém tanto uma

ligação para o próximo item como uma ligação para o item anterior

Obs.: Nesse caso, o ponteiro que apontaria para o item anterior do primeiro elemento e o ponteiro que apontaria para o próximo do último elemento devem apontar para NULL

Listas Encadeadas Numa lista de ligação circular, o último item

possui uma ligação com o primeiro item da lista.

Obs.: Já nesse caso, deve-se haver um melhor controle. Pois, caso possua mais de 1 elemento, a lista não tem “fim” (nenhum ponteiro aponta para NULL).

Listas Encadeadas Exemplo:

Listas Encadeadas

Há, basicamente, três operações com listas:

InserçãoRemoção

Busca / Impressão

Listas Encadeadas

Listas Encadeadas

Listas Encadeadas

Listas Encadeadas Exemplo insersão:

Listas Encadeadas Exemplo - Remoção

Listas EncadeadasExemplo – Remoção:

Obs.: Lembrar sempre de dar free() no elemento removido.

Listas Encadeadas Exemplo - Remoção

Listas Encadeadas Exemplo – Busca Impressão:

Listas Encadeadas

Dúvidas???

ExercíciosFaça um programa de cadastro de uma lista telefônica

usando o conceito de lista encadeadas. Cada elemento possuirá nome (no máximo 30 caracteres) e telefone. A lista deverá estar em ordem alfabética.Seu programa deverá ter as seguintes opções:

Busca por nome;Inserção;Remoção;Impressão da lista completa;