Professional Documents
Culture Documents
Listas Encadeadas Simples-Iesb
Listas Encadeadas Simples-Iesb
DE DADOS
Mauricio Saraiva
Listas encadeadas simples
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
Introdução
As listas encadeadas simples são normalmente utilizadas para relacionar
itens que precisam ser exibidos ou manipulados por meio de estruturas
dinâmicas. Com isso, é possível implementar operações que permitem
redimensionar as listas de acordo com a quantidade de itens manipulados,
ocupando exatamente a memória necessária para alocar os elementos
que pertencem à lista. Conhecer a definição das listas encadeadas sim-
ples, bem como suas operações de manipulação e acesso, permite que
o profissional de TI (tecnologia da informação) identifique e aplique
soluções confiáveis e otimizadas para o desenvolvimento de sistemas.
Neste capítulo, você vai estudar sobre listas encadeadas simples e
suas operações de manipulação e acesso.
a b
c d
e f
&e1
e1
&prox
Figura 2. Estrutura de um elemento de uma lista encadeada.
e1 e2 e3 e4
“Não liberar memória alocada dinamicamente quando ela não mais for necessária
pode fazer com que o sistema esgote prematuramente sua memória. Algumas vezes
isso é chamado um vazamento de memória” (DEITEL; DEITEL, 2010, p. 552).
listaProduto.proximo = nulo
Incluir um novo elemento no início da lista é uma tarefa simples. Para isso, é
preciso ajustar o apontamento inicial da lista, que vai indicá-lo como primeiro
elemento, definindo como seu próximo elemento aquele que ocupava essa
posição anteriormente (Figura 4).
d
c
a e
b
d
a c
b e
novoProduto.proximo = listaProduto.proximo
listaProduto.proximo = novoProduto
8 Listas encadeadas simples
d
c
a b e
x
d
a c
b e
d
a c
b e
d
a c
b e
d
a c
b e
d
a
b e
primeiro= listaProduto.proximo
listaProduto.proximo= primeiro.proximo
liberarMemoria(primeiro)
Para excluir um elemento do final, é preciso fazer uma varredura na lista até
chegar à última posição, definir o apontamento do penúltimo elemento como
nulo e liberar a memória do elemento que ocupava a última posição.
anterior= listaProduto
atual= listaProduto.proximo
enquanto atual.proximo diferente nulo
anterior= atual
atual= atual.proximo
Listas encadeadas simples 11
fim enquanto
anterior.proximo= nulo
liberarMemoria(atual)
anterior= listaProduto
atual= lisProduto.proximo
enquanto atual.proximo diferente nulo
se atual.proximo igual a valor
anterior.proximo= atual.proximo
liberarMemoria(atual)
sair
fim se
anterior= atual
atual= atual.proximo
fim enquanto
Para excluir uma lista encadeada inteira, é preciso percorrer todos os elementos,
a partir do início, e liberar a alocação de memória de cada elemento, bem como
indicar que seu próximo elemento aponta para nulo para evitar o apontamento
de alguma posição desatualizada na memória.
atual= listaProduto
enquanto atual.proximo diferente nulo
proximo= atual.proximo
atual.proximo= nulo
liberarMemoria(atual)
fim enquanto
12 Listas encadeadas simples
Uma lista encadeada está vazia se ela aponta para nulo, isto é, se ela não
aponta para nenhum elemento.
primeiro= listaProduto.proximo
imprime primeiro
Não é possível acessar diretamente o último elemento da lista, uma vez que
uma lista encadeada simples não permite acesso direto aos elementos. Dessa
forma, é preciso percorrer toda a lista a partir do primeiro elemento.
Listas encadeadas simples 13
elemento= listaProduto.proximo
enquanto elemento diferente nulo
se elemento.proximo igual a nulo
imprime elemento
fim se
elemento= listaProduto.proximo
fim enquanto
Sabendo que uma lista encadeada simples não permite acessar diretamente
os elementos, é preciso realizar uma varredura na lista a partir da primeira
posição. Dessa forma, compara-se cada elemento da lista com o dado pesqui-
sado, buscando localizar a informação desejada.
elemento= listaProduto.proximo
enquanto elemento diferente nulo
se elemento.proximo igual a informação desejada
imprime elemento
fim se
elemento= listaProduto.proximo
fim enquanto
elemento= listaProduto.proximo
enquanto elemento diferente nulo
imprime elemento
elemento= listaProduto.proximo
fim enquanto
14 Listas encadeadas simples
CELES, W.; CERQUEIRA, R.; RANGEL, J. L. Introdução a estrutura de dados. São Paulo:
Campus, 2004.
DEITEL, P. J.; DEITEL, H. M. Como programar em C. 6. ed. São Paulo: Pearson, 2011.
EDELWEISS, N.; GALANTE, R. Estrutura de dados. Porto Alegre: Bookman, 2009. (Série
Livros Didáticos Informática UFRGS, v. 18).
FORBELLONE, A. L. Lógica de programação: a construção de algoritmos e estruturas
de dados. 3. ed. São Paulo: Prentice Hall, 2005.
MATTOS, P.; LORENZI, F.; CARVALHO, T. Estruturas de dados. São Paulo: Thomson, 2007.
Encerra aqui o trecho do livro disponibilizado para
esta Unidade de Aprendizagem. Na Biblioteca Virtual
da Instituição, você encontra a obra na íntegra.
Conteúdo: