Buscar

Listas encadeadas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 28 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Listas encadeadas
APRESENTAÇÃO
Na estrutura de dados, as listas são normalmente utilizadas para relacionar itens que precisam 
ser exibidos ou manipulados por meio de estruturas estáticas ou dinâmicas. Diversas são as 
atividades que podem ser realizadas com listas e cada qual requer um tipo adequado, de acordo 
com os objetivos e as funcionalidades da aplicação. Ao conhecer essas estruturas, um 
profissional de TI será capaz de identificar o uso correto de cada tipo de lista, bem como poderá 
apresentar soluções confiáveis e otimizadas para o desenvolvimento de sistemas. 
Nesta Unidade de Aprendizagem, você vai estudar sobre formas de armazenamento em lista, 
listas com encadeamento simples e comparação entre listas encadeadas e estáticas. 
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Identificar formas de armazenamento em uma lista.•
Reconhecer encadeamento simples em uma lista.•
Comparar lista encadeada com lista estática.•
DESAFIO
Listas, de um modo geral, podem conter pequenas ou grandes relações de itens. As relações 
pequenas, independentemente da técnica utilizada, são manipuladas com baixo custo 
computacional por terem poucos itens. No entanto, relações grandes requerem a avaliação de 
técnicas apropriadas, com o objetivo de atender às demandas, usando adequadamente os 
recursos computacionais disponíveis, por meio de rotinas otimizadas que proporcionem melhor 
desempenho.
Neste contexto, considere que você é o analista responsável pela análise de um processo 
computacional que requer a manipulação de uma relação com um milhão de registros. 
Essa relação está ordenada e deve permitir a inclusão de novos itens em qualquer posição, 
mantendo a ordem classificada.
Por ser o responsável pelo processo, você tem autonomia para decidir qual o tipo de lista que 
deve ser empregado na solução, considerando as listas estáticas e dinâmicas. Assim, explique 
qual o tipo de lista é o mais recomendado para resolver esse problema e justifique sua 
indicação, apresentando os argumentos utilizados tanto para a escolha de uma quanto 
para a recusa da outra. 
INFOGRÁFICO
Listas são estruturas largamente utilizadas em sistemas computacionais. Diversas atividades do 
mundo real podem ser representadas por listas, como a relação de produtos em estoque e a 
listagem de clientes inadimplentes, entre outras.
Entre os tipos de listas que existem na estrutura de dados, a lista com encadeamento simples 
destaca-se por não ter uma quantidade limitada de itens e otimizar a memória do dispositivo, 
alocando apenas o espaço necessário para acomodar os elementos, bem como tem a capacidade 
de incluir e excluir itens de qualquer posição com baixo custo de processamento.
Veja, no infográfico, a apresentação de uma lista com encadeamento simples.
CONTEÚDO DO LIVRO
Rotinas automatizadas, de um modo geral, utilizam listas para representar dados em séries ou 
para apresentar itens agrupados por determinada categoria, como a listagem de alunos 
matriculados em determinada disciplina ou a relação clientes com a mensalidade em dia de uma 
academia de ginástica.
Conhecer as estruturadas de dados baseadas em listas representa um diferencial que todo 
profissional de TI deve ter, uma vez isso poderá auxiliá-lo na identificação e seleção de técnicas 
apropriadas para a solução dos problemas computacionais que fazem parte da rotina de 
programadores e desenvolvedores de sistemas.
No capítulo Listas encadeadas, da obra Estrutura de dados, que é base teórica desta Unidade de 
Aprendizagem, você vai estudar sobre formas de armazenamento em listas, listas com 
encadeamento simples e comparação entre listas encadeadas e estáticas. 
ESTRUTURA
DE DADOS
Maurício Saraiva
 
Listas encadeadas
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
  Identificar formas de armazenamento em uma lista.
  Reconhecer o encadeamento simples em uma lista.
  Comparar lista encadeada com lista estática.
Introdução
Na estrutura de dados, as listas são, geralmente, utilizadas para relacionar 
itens que precisam ser exibidos ou manipulados por meio de estrutu-
ras estáticas ou dinâmicas. Diversas são as atividades que podem ser 
realizadas com listas e cada uma delas requer um tipo adequado, de 
acordo com os objetivos e funcionalidades da aplicação. Ao conhecer 
essas estruturas, um profissional de tecnologia da informação (TI) será 
capaz de identificar o uso correto de cada tipo de lista, bem como poderá 
apresentar soluções confiáveis e otimizadas para o desenvolvimento de 
sistemas.
Neste capítulo, você estudará sobre formas de armazenamento em 
lista, listas com encadeamento simples e comparação entre listas enca-
deadas e estáticas.
Formas de armazenamento em uma lista
Uma lista pode ser entendida como uma relação de itens que contém elementos 
de um tipo primitivo ou de um tipo abstrato de dados (TAD). Essa relação 
deve ser contínua e não pode conter elementos nulos nem espaços vazios que 
interrompam a sequência da lista (EDELWEISS; GALANTE, 2009).
Listas, de um modo geral, são largamente utilizadas em sistemas com-
putacionais, uma vez que representam diversas rotinas do mundo real e que 
podem ser automatizadas, como a relação de produtos em promoção de uma 
loja e a listagem de alunos adimplentes de uma academia.
Diferente de filas e pilhas que possuem restrição no modo de inclusão e 
exclusão de itens, as listas são mais abrangentes e permitem adicionar e remover 
itens em qualquer posição e em qualquer ordem da relação, oferecendo, assim, 
grande utilidade em rotinas automatizadas (EDELWEISS; GALANTE, 2009). 
Na estrutura de dados, as listas podem ser classificadas em duas categorias: 
estáticas e dinâmicas, que apresentam diferentes particularidades e modos de 
operação, conforme você verá na sequência deste capítulo.
Lista estática
Uma lista estática é uma relação de itens armazenados em uma estrutura de 
tamanho fi xo, como um array. Nessa estrutura, a quantidade de elementos é 
reservada no momento de sua criação e o seu tamanho não pode ser redimen-
sionado em tempo de execução (DEITEL; DEITEL, 2011).
A alocação de memória de uma lista estática é sequencial, isto é, os itens 
estão localizados em posições contínuas da memória, o que permite a busca 
de elementos ser realizada diretamente em determinada posição, por meio 
de seu índice.
No entanto, por mais que uma lista estática não ocupe todas as posições 
definidas na sua criação, os espaços de memória reservados por ela não po-
derão ser ocupados por outra aplicação. Dessa forma, o programa não utiliza 
os recursos de memória de maneira eficiente, pois pode reservar mais que o 
necessário (MATTOS; LORENZI; CARVALHO, 2007). 
A Figura 1 apresenta uma lista que reserva 10 posições na memória, mas 
que ocupa apenas as quatro primeiras.
Figura 1. Representação na memória de uma lista estática.
1 2 3 4
a b c d ...
5 10
Listas encadeadas2
A inclusão e a exclusão de itens no interior da lista podem ser custosas, 
ou seja, podem demandar mais recursos de processamento e demorar signi-
ficativamente para concluir a tarefa em listas grandes, uma vez que todos os 
elementos, a partir do respectivo item incluído/excluído, devem ser reposicio-
nados na lista (MATTOS; LORENZI; CARVALHO, 2007).
As vantagens de uma lista estática são (FORBELLONE, 2005):
  agilidade nas consultas — acesso direto aos elementos por meio dos 
índices do array;
  tempo de acesso constante — a velocidade das pesquisas não reduz 
com o crescimento da lista.
As desvantagens de uma lista estática são (FORBELLONE, 2005):
  array de tamanho fixo — a lista não pode aumentar nem diminuir em 
tempo de execução;
  custo de inclusão/exclusão de itens — o custo computacional é alto para 
realocar os itens quando algum elemento é incluído ou excluído da lista.
Lista dinâmica
Uma lista dinâmica realiza a alocação de memória em tempode execução 
para a acomodação de novos itens, isto é, reserva memória apenas quando 
precisa aumentar a lista e, quando reduz, libera a memória ocupada. Assim, 
o programa utiliza a memória de forma dinâmica, sem ocupar mais espaço 
que o necessário (DEITEL; DEITEL, 2011).
Não existe um índice de acesso aos elementos de uma lista dinâmica. A 
lista mantém o endereço da posição inicial, sendo necessário percorrer os 
itens de forma sequencial para encontrar determinado elemento na relação.
A relação entre os elementos de uma lista dinâmica se dá pelo uso de 
ponteiros de memória, ou seja, cada elemento possui um apontador para o 
endereço de memória de um ou mais elementos da lista, fazendo ela ficar 
ligada, sem ocupar posições contínuas na memória (CELES; CERQUEIRA; 
RANGEL, 2004). Observe a representação da Figura 2.
3Listas encadeadas
Figura 2. Representação na memória de uma lista encadeada simples.
Mapa da memória principal
a b
d
e
Lista: a -> b -> c -> d -> e -> f 
f
c
As vantagens de uma lista dinâmica são (FORBELLONE, 2005):
  crescimento e redução dinâmica — capacidade de crescer e reduzir 
a lista em tempo de execução;
  baixo custo de inserção e exclusão — ajusta o apontamento de memória 
em apenas dois elementos a cada modificação realizada (anterior e 
próximo);
  alocação dinâmica de memória — proporciona otimização da me-
mória principal, usando apenas o espaço necessário para acomodar os 
elementos da lista;
  alocação eficiente — a alocação de endereços de memória é geren-
ciada pelo sistema operacional por meio das funções da linguagem de 
programação.
As desvantagens de uma lista dinâmica são (FORBELLONE, 2005):
  alto custo de pesquisa — não existe um índice de acesso direto, devendo 
realizar busca sequencial;
  tempo crescente de busca — o tempo gasto para encontrar elementos 
cresce de acordo com o tamanho da lista.
Listas encadeadas4
“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).
Em estrutura de dados, as listas dinâmicas podem ser divididas em duas 
categorias: listas com encadeamento simples e listas com encadeamento duplo.
Encadeamento simples
Uma lista dinâmica baseada no encadeamento simples, ou simplesmente 
encadeada, é uma relação de itens organizados em sequência, cujos itens 
armazenam, além das informações do elemento, o endereço do próximo item 
da lista (CELES; CERQUEIRA; RANGEL, 2004).
Nesse tipo de encadeamento, a varredura da lista ocorre apenas em uma 
direção, ou seja, da esquerda para a direita, sem a possibilidade de fazer o per-
curso de volta. O último item da lista aponta para um endereço nulo, indicando 
que se encontra na última posição, conforme você pode observar na Figura 3.
Figura 3. Lista simplesmente encadeada.
a c
e
d
b
5Listas encadeadas
Encadeamento duplo
Uma lista dinâmica que se baseia no encadeamento duplo, ou duplamente 
encadeada, é uma sequência de itens que apontam para dois endereços, além 
de armazenar o conteúdo do próprio elemento. Esses ponteiros correspondem 
aos endereços dos itens anterior e próximo na lista (CELES; CERQUEIRA; 
RANGEL, 2004).
Por conter ponteiros que apontam para os elementos anterior e posterior, a 
varredura pode ocorrer em ambos os sentidos, isto é, tanto da esquerda para 
a direita como da direita para a esquerda. Os endereços anterior ao primeiro 
item e posterior ao último apontam para nulo, indicando que a lista inicia e 
termina neles, como você pode observar na Figura 4.
Figura 4. Lista duplamente encadeada.
a c
e
d
b
Encadeamento simples em uma lista
Na seção anterior, você viu que, em uma lista simplesmente encadeada, cada 
elemento mantém um ponteiro para o próximo elemento da lista, o que faz a 
alocação ser dinâmica, uma vez que um novo espaço na memória será reservado 
apenas quando um elemento for inserido.
A estrutura de um elemento em uma lista encadeada é dividida em três 
partes (Figura 5), conforme descrito a seguir (MATTOS; LORENZI; CAR-
VALHO, 2007).
Listas encadeadas6
  &e1: representa o endereço do próprio elemento na memória.
  e1: significa o conteúdo do elemento, que pode ser apenas de um tipo 
primitivo ou um TAD.
  &prox: indica o endereço do próximo elemento da lista.
Figura 5. Estrutura de um elemento de uma lista encadeada.
&e1
&prox
e1
O limite de elementos de uma lista dinâmica é determinado pela quantidade 
de memória que estiver disponível no dispositivo ou na máquina virtual que 
rodar o aplicativo. Para isso, a linguagem C fornece as funções malloc e free, 
para alocar e liberar recursos de memória em tempo de execução.
A estrutura de uma lista simplesmente encadeada está ilustrada na Figura 
6, na qual você pode visualizar que cada elemento aponta para o endereço do 
próximo item da lista, até que o último elemento aponta para nulo.
Figura 6. Ilustração de uma lista encadeada.
&e1
&prox
e1
&e2
&prox
e2
&e3
&prox
e3
&e4
&prox
e4
7Listas encadeadas
Na linguagem C, uma lista simplesmente encadeada contendo o nome, a 
nota e a turma de um estudante pode ser declarada da seguinte forma:
Note, na linha 9, que o atributo *prox da estrutura Nodo é declarado como 
uma estrutura de Nodo. Isso significa que esse atributo pode armazenar um 
endereço da mesma estrutura, que será utilizado para apontar para o próximo 
elemento da lista.
No entanto, antes de criar um novo elemento, é preciso realizar a alocação 
de memória, que é feita a partir do tamanho base da estrutura em conjunto 
com a instrução malloc. Após a alocação, deve-se fazer o apontamento, isto 
é, dizer quem aponta para ele e para quem ele aponta. O exemplo a seguir 
insere o novo elemento na primeira posição da lista.
Para inserir um elemento no final da lista, basta percorrê-la até a última 
posição e realizar o apontamento do novo item que foi criado. Lembre-se que 
o próximo do último elemento é NULL, pois ele não aponta para ninguém.
Listas encadeadas8
A impressão da lista é realizada de forma parecida com a inclusão no final, 
ou seja, é preciso percorrer todos os elementos, desde o início até que o último 
elemento aponte para NULL. O deslocamento na lista se dá pelo acesso ao 
endereço do próximo item.
Por fim, deve-se liberar os recursos de memória alocados. Para isso, você 
deve fazer uma varredura na lista e liberar cada elemento por meio da ins-
trução free.
Comparar lista estática e lista encadeada
Na estrutura de dados, listas estáticas apresentam comportamentos diferentes 
de listas encadeadas. Para ambas as listas existem vantagens e desvantagens 
na sua utilização, e o tipo de lista a ser escolhido vai depender das caracte-
rísticas da aplicação.
As principais operações, que diferenciam uma lista estática de uma lista 
encadeada são a inserção e a exclusão, conforme apresentado a seguir. 
Inserção de item
A inclusão de um elemento em uma lista estática pode fazer alguns elementos 
da lista terem que ser reposicionados. Isso provoca deslocando dos elemen-
tos à direita do novo item para abrir espaço para a sua inserção, conforme 
demonstrado na Figura 7.
9Listas encadeadas
Figura 7. Inclusão de item da lista estática.
x
x
1 2 3 4 5
a b c d e
a b dc e
6
1 2 3 4 5 6
A inclusão de um elemento em uma lista dinâmica é realizada pelo en-
cerramento da conexão entre os itens que estavam ligados, fazendo o item 
anterior apontar para o novo elemento e este apontar para o item posterior, 
conforme apresentado na Figura 8.
Figura 8. Inclusão de item da lista dinâmica.
a
d
c
eb
x
a
d
c
eb
x
Listas encadeadas10
Exclusão de item
Assim como na inclusão de um item em uma lista estática, a exclusão de um 
elemento pode fazer alguns itens da lista terem que ser reposicionados. Assim, 
ocorre o deslocando dos elementos à direita do item retirado para fechar o 
espaço antes ocupado, conforme ilustrado na Figura 9.
Figura9. Exclusão de item da lista estática.
1 2 3 4 5 6
1 2 3 4 5 6
a b c d e
a b c d e
A exclusão de um elemento em uma lista dinâmica encerra as ligações 
anterior e posterior do item que foi excluído, religando seu antecessor ao seu 
sucessor. Além disso, ocorre a liberação da memória que estava alocada para 
o item que foi excluído, conforme demonstrado na Figura 10.
Figura 10. Exclusão de item da lista dinâmica.
a
b
c
d
e
a
b
d
e
11Listas encadeadas
O Quadro 1 apresenta um resumo comparativo das diferenças entre as 
listas estáticas e encadeadas, com base nas características e operações de 
cada uma delas.
Evento Lista estática Lista encadeada
Pesquisa 
pela 
posição
A pesquisa é rápida, com acesso 
direto ao item por meio do índice 
do array. O tempo de busca é 
constante, independentemente 
do tamanho da lista.
A pesquisa é mais lenta porque 
é sequencial, sempre partindo 
do primeiro elemento da lista. 
O tempo de busca considera 
a posição do elemento a ser 
buscado e o tamanho da lista.
Pesquisa 
por 
conteúdo
Essa pesquisa não usa o índice 
do array. Assim, precisa percorrer 
a lista sequencialmente até 
encontrar o item cujo conteúdo 
é igual ao pesquisado.
O desempenho é semelhante 
porque também precisa percorrer 
a lista sequencialmente, desde a 
primeira posição até encontrar o 
item pesquisado.
Inserção 
no meio 
da lista
É mais lenta porque precisa 
reposicionar os itens à direita do 
elemento inserido.
É mais rápida porque modifica 
os apontadores de dois itens 
apenas, o anterior e o posterior 
do item inserido.
Inserção 
no final 
da lista
É mais rápida porque acessa 
diretamente a próxima posição 
livre por meio do índice do array.
É um pouco mais custosa porque 
precisa percorrer toda alista até 
chegar à última posição antes 
de inserir.
Exclusão 
no meio 
da lista
É mais lenta porque precisa 
reposicionar os itens à direita do 
elemento excluído.
É mais rápida porque modifica 
os apontadores de dois itens 
apenas, o anterior e o posterior 
do item excluído.
Exclusão 
no final 
da lista
É rápida porque acessa 
diretamente a última posição por 
meio do índice do array.
É um pouco mais lenta porque 
precisa percorrer toda a lista até 
chegar à última posição antes de 
excluir.
Tamanho 
da lista
Limitado e definido no mo-
mento da declaração. Pode não 
ocupar todas as posições reser-
vadas e consumir memória sem 
necessidade.
O limite é o tamanho da memória 
livre no equipamento. Consome 
apenas o necessário para acomo-
dar os itens e aloca ou libera con-
forme a lista cresce ou diminui.
Indicação 
de uso
Listas pequenas, com quantidade 
limitada de itens, cujas inserções/
exclusões são raras e ocorrem 
normalmente no final da lista.
Listas grandes, sem limite defi-
nido de itens, que tendem a re-
ceber mais inserções/exclusões 
de elementos.
 Quadro 1. Resumo comparativo. 
Listas encadeadas12
CELES, W.; CERQUEIRA, R.; RANGEL, J. L. Introdução a estrutura de dados. São Paulo: 
Campus, 2004.
DEITEL, P. J.; DEITEL, H. M. C: como programar. 6. ed. Rio de Janeiro: 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: Pearson, 2005.
MATTOS, P.; LORENZI, F.; CARVALHO, T. Estruturas de dados. São Paulo: Thomson, 2007.
13Listas encadeadas
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:
DICA DO PROFESSOR
Listas são largamente utilizadas em sistemas computacionais, podendo representar diversas 
atividades do mundo real. No entanto, um profissional atento deve levar em consideração a 
forma como as listas são manipuladas, uma vez que o desempenho de uma rotina informatizada 
pode variar de acordo com o tipo de lista empregado.
Assista ao vídeo para conhecer as principais diferenças entre os tipos de listas em estrutura de 
dados.
Conteúdo interativo disponível na plataforma de ensino!
EXERCÍCIOS
1) Baseando-se no conceito de lista dinâmica encadeada, marque a alternativa correta 
em relação à inclusão de elementos:
A) 
A inclusão de elementos deve ocorrer no início da lista.
B) 
A inclusão de elementos deve ocorrer no final da lista.
C) 
A inclusão de elementos deve ocorrer em qualquer posição da lista.
D) 
A inclusão de elementos deve ocorrer em uma posição que esteja vazia.
E) 
O número máximo de elementos a serem incluídos é definido no momento de sua criação.
2) Em relação às listas simplesmente encadeadas, leia as alternativas a seguir e indique 
a correta:
A) 
São rápidas para encontrar um elemento e lentas para incluir ou excluir.
B) 
Cada elemento aponta para o endereço dos elementos anterior e sucessor.
C) 
Armazenam os dados em posições contínuas na memória para agilizar a busca sequencial.
Uma lista encadeada não tem um limite máximo de itens, pois a alocação é feita em tempo de execução, sendo que o limite é o tamanho da memória disponível no equipamento. Deve, ainda, permitir a inclusão em qualquer posição da lista, que fará a nova ligação para mantê-la encadeada.
D) 
Alocam apenas a memória necessária para armazenar os elementos da lista.
E) 
Uma vantagem é o tempo constante de busca de elementos.
3) Marque a alternativa correta em relação às vantagens de uma lista dinâmica:
A) 
Permitem aumento e redução do tamanho da lista em tempo de execução.
B) 
Alocam posições contínuas de memória no momento da criação.
C) 
Baixo custo computacional para realizar pesquisa por meio dos índices.
D) 
São rápidas para inserir porque a inserção sempre ocorre no final da lista.
E) 
Utilizam arrays para armazenar o endereço de memória dos demais itens da cadeia.
4) Analise o seguinte código baseado na linguagem C e marque a alternativa que 
representa o seu significado:
 
nodo *item= (nodo *) malloc(sizeof(nodo));
nodo *no= L->prox;
while(no->prox != NULL) {
no= no->prox;
}
no->prox = item;
A) 
Adiciona um novo elemento no início da lista.
B) 
Adiciona um novo elemento no final da lista.
C) 
Remove o primeiro elemento da lista.
D) 
Remove o próximo elemento da lista.
E) 
Remove o último elemento da lista.
Levando em consideração os conceitos de uma lista simplesmente encadeada, assinale 5) 
Uma lista simplesmente encadeada aponta apenas para o elemento posterior da cadeia, cuja pesquisa é sequencial. Por isso, é mais lenta para encontrar elementos, visto que seu tempo de busca é crescente e varia conforme a quantidade de itens da lista. No entanto, é rápida para inserir/excluir e não requer posições contínuas na memória, pois a alocação é dinâmica e otimizada, utilizando apenas o necessário
Uma lista simplesmente encadeada aponta apenas para o elemento posterior da cadeia, cuja pesquisa é sequencial. Por isso, é mais lenta para encontrar elementos, visto que seu tempo de busca é crescente e varia conforme a quantidade de itens da lista. No entanto, é rápida para inserir/excluir e não requer posições contínuas na memória, pois a alocação é dinâmica e otimizada, utilizando apenas o necessário
O código descrito faz uma varredura na lista até chegar à última posição. Na sequência, faz o último item apontar para o elemento que foi criado (*item). Portanto, adiciona um novo elemento no final da lista.
a alternativa que melhor representa a sua utilização:
A) 
Listas pequenas com raras inserções.
B) 
Listas com um tamanho definido, como a relação de UFs do Brasil.
C) 
Listas grandes, com muitas inserções e em qualquer posição.
D) 
Listas que requerem pesquisa indexada.
E) 
Listas que precisam ser percorridas em qualquer direção.
NA PRÁTICA
Aqui, é apresentado um TAD do tipo lista, composto dos seguintes atributos: nome, nota e 
turma, que compreendem o cadastro de alunos de uma disciplina.
Para administrar essa estrutura, cria-se uma lista simplesmente encadeada, quepode receber 
inúmeros elementos, a qual implementará os seguintes métodos de acesso: acrescentar elemento 
no início, no meio e no final, imprimir e desalocar os itens da memória.
A definição da estrutura Aluno e da lista está descrita a seguir:
Uma lista simplesmente encadeada é recomendada para listas grandes, que podem ter muitas inserções e exclusões, cujo tamanho pode ser indefinido. No entanto, não apresentam pesquisa indexada, e a varredura ocorre apenas em uma direção.
SAIBA +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do 
professor:
Lista Dinâmica Duplamente Encadeada Parte 1 - Definição
Assista ao vídeo para saber mais sobre como implementar uma Lista Dinâmica Encadeada.
Conteúdo interativo disponível na plataforma de ensino!
Lista Dinâmica Encadeada Parte 2 – Implementação
Assista ao vídeo para saber mais sobre como implementar uma Lista Dinâmica Encadeada.
Conteúdo interativo disponível na plataforma de ensino!
Remoção na Lista Dinâmica
Assista ao vídeo para saber mais sobre como remover itens de uma Lista Dinâmica Encadeada.
Conteúdo interativo disponível na plataforma de ensino!

Continue navegando