Prévia do material em texto
<p>Listas encadeadas simples</p><p>Apresentação</p><p>As listas encadeadas simples são um dos tipos de listas dinâmicas mais utilizadas, devido a sua</p><p>facilidade de implementação. Esse tipo de lista possibilita a manipulação de dados de tamanho</p><p>indefinido, bem como a aplicação de diferentes técnicas de ordenação a partir de sua estrutura.</p><p>Sua estrutura de armazenamento permite a alocação de memória física de forma não linear; logo,</p><p>seu limite de tamanho está relacionado com o tamanho da memória física do computador, e não do</p><p>maior bloco de memória disponível, como ocorreria em uma lista estática.</p><p>Nesta Unidade de Aprendizagem, você verá as listas encadeadas simples, como realizar suas</p><p>operações e como aplicá-las em projetos.</p><p>Bons estudos.</p><p>Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:</p><p>Identificar as operações sobre listas encadeadas simples.•</p><p>Resolver problemas aplicando as operações de inserção, remoção e consulta sobre listas</p><p>encadeadas simples.</p><p>•</p><p>Aplicar o uso de listas encadeadas simples.•</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Desafio</p><p>As listas são utilizadas para armazenar e manipular um conjunto de dados significativos. Nesse</p><p>sentido, são comuns inserções, remoções e ordenações de valores para melhor visualizá-las; porém,</p><p>há um consumo significativo de processamento em sua aplicação.</p><p>Suponha que você trabalhe na área de TI de uma grande empresa.</p><p>Laiane</p><p>A partir do código, foi solicitada a realização da criação do método AddFinal. O método deverá seguir o padrão abaixo:def AddFinal(self,novoCod): if self.cabeca: aux = self.cabeca while(aux.proximo): aux = aux.proximo aux.proximo = Produto(novoCod) else: self.cabeca = Produto(novoCod)O código completo ficou assim:class Produto: def __init__(self, codigo=0, proximo_nodo=None): self.codigo = codigo self.proximo = proximo_nodo def __repr__(self): return '%s -> %s' % (self.codigo, self.proximo)class ListaEncadeada: def __init__(self): self.cabeca = None def __repr__(self): return "[" + str(self.cabeca) + "]" # Método para adicionar um novo código ao final da lista def AddFinal(self, novoCod): if self.cabeca: aux = self.cabea while(aux.proximo): aux = aux.proximo aux.proximo = Produto(novoCod) else: self.cabeca=Produto(novoCod)# Testar o funcionamentolista = ListaEncadeada()print("Lista vazia:", lista) lista.AddFinal(1111) print(lista) lista.AddFinal(2222) print(lista) lista.AddFinal(3333) print(lista)</p><p>Aponte a câmera para o</p><p>código e acesse o link do</p><p>conteúdo ou clique no</p><p>código para acessar.</p><p>https://statics-marketplace.plataforma.grupoa.education/sagah/f10855b8-fd70-4559-8fa2-01601ad5c26f/d9f7d4f0-f276-4b25-a110-1150844387d7.png</p><p>A partir desse contexto, escreva o algoritmo que realize a inclusão de novos elementos ao final da</p><p>lista a partir do leitor de código de barras.</p><p>Infográfico</p><p>Os desenvolvedores tipicamente fazem uso de bibliotecas de desenvolvimento com o objetivo de</p><p>acelerar o processo de construção de um software; porém, muitas vezes, essas bibliotecas podem</p><p>ser incompletas ou não atender a todas as necessidades do desenvolvedor.</p><p>Neste Infográfico, você vai ver um passo a passo para iniciar o desenvolvimento de uma lista</p><p>encadeada simples sem o uso de bibliotecas Python.</p><p>Conteúdo interativo disponível na plataforma de ensino!</p><p>Laiane</p><p>Conteúdo do livro</p><p>As listas encadeadas simples são um dos tipos de listas dinâmicas muito utilizadas em sistemas que</p><p>necessitam realizar a manipulação de dados de forma flexível.</p><p>No capítulo Listas encadeadas simples, da obra Estrutura de dados, base teórica desta Unidade de</p><p>Aprendizagem, você vai estudar as listas encadeadas simples, seus conceitos, operações e</p><p>possibilidades de aplicação.</p><p>Boa leitura.</p><p>Laiane</p><p>ESTRUTURA</p><p>DE DADOS</p><p>Lucas Plautz Prestes</p><p>Listas encadeadas simples</p><p>Objetivos de aprendizagem</p><p>Ao final deste texto, você deve apresentar os seguintes aprendizados:</p><p>� Identificar as operações sobre listas encadeadas simples.</p><p>� Resolver problemas aplicando as operações de inserção, remoção e</p><p>consulta sobre listas encadeadas simples.</p><p>� Aplicar o uso de listas encadeadas simples.</p><p>Introdução</p><p>A compreensão de listas em programação é de fundamental importância</p><p>para a correta manipulação de dados em memória, na qual cada tipo de</p><p>lista tem características específicas para a sua correta aplicação.</p><p>As listas encadeadas simples são um dos tipos de listas dinâmicas</p><p>mais fáceis de se implementar e são também de suma importância para</p><p>o desenvolvimento de uma estrutura de dados flexível, com foco na ma-</p><p>nipulação de dados. A partir dessa informação, será possível implementar</p><p>operações que permitem o redimensionamento dinâmico e o tamanho</p><p>da lista, de acordo com a quantidade de itens necessários, logo, ocupando</p><p>exatamente o tamanho necessário em memória, seja ela linear ou não.</p><p>Neste capítulo, você vai estudar sobre as listas encadeadas simples, seus</p><p>conceitos e suas possibilidades.</p><p>1 O que é uma lista encadeada simples?</p><p>A lista encadeada simples, também chamada de lista dinâmica simplesmente</p><p>encadeada, constitui uma relação entre elementos interligados entre si, em que</p><p>cada elemento é composto de uma estrutura que pode conter variáveis de di-</p><p>versos tipos de dados. Nesse tipo de lista, os elementos podem ser manipulados</p><p>em tempo de execução, fazendo com que a lista tenha o seu tamanho dinâmico</p><p>de acordo com a necessidade da aplicação (EDELWEISS; GALANTE, 2009).</p><p>Laiane</p><p>Laiane</p><p>A estrutura de um elemento em uma lista encadeada simples, memória</p><p>física, é dividida em três partes, sendo a primeira o endereço de memória</p><p>física do nodo, e as duas seguintes pertencentes ao respectivo nodo. A Figura 1</p><p>ilustra essa distribuição.</p><p>Figura 1. Representação dos três elementos em memória física</p><p>de um nodo. &e1: endereço do próprio elemento na memó-</p><p>ria, o endereço do nodo. e1: armazena o dado do elemento,</p><p>representa o dado do respectivo nodo, seja ele primitivo ou</p><p>criado pelo próprio usuário. &prox: indica o endereço físico</p><p>em memória do próximo elemento da lista, do próximo nodo.</p><p>Fonte: Adaptada de Lorenzi, Mattos e Carvalho (2007).</p><p>A lista encadeada é composta de nodos, nos quais cada nodo é composto</p><p>por uma variável, seja ela primitiva ou criada pelo usuário, e um ponteiro,</p><p>posição de memória, que irá apontar para o nodo seguinte da lista, se houver.</p><p>Essa estrutura de armazenamento possibilita a alocação de memória física</p><p>de forma não linear, logo, o seu limite de tamanho está relacionado de acordo</p><p>com o tamanho da memória física do computador, e não do maior bloco de</p><p>memória disponível, como ocorreria em uma lista estática. Na Figura 2, po-</p><p>demos verificar a posição de memória ocupada por cada nodo de forma não</p><p>linear e de tamanhos diferentes, pois o dado armazenado poderá ser do tipo</p><p>diferente, dependendo da linguagem de programação escolhida, como Python.</p><p>Listas encadeadas simples2</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Figura 2. Posição dos nodos em memória física.</p><p>Operações sobre lista encadeada simples</p><p>As operações de manipulação de uma lista encadeada simples permitem a</p><p>realização de ações que modificam a lista, sejam elas inclusão, remoção ou</p><p>alteração de seus elementos. Devemos salientar que as operações de inclusão</p><p>ou remoção de elementos poderão ser realizadas em qualquer posição da lista,</p><p>de acordo com as peculiaridades de cada caso.</p><p>As operações que podem ser realizadas em uma lista encadeada simples são:</p><p>� criar uma lista;</p><p>� adicionar elementos à lista;</p><p>� remover elementos da lista;</p><p>� excluir a lista.</p><p>Criação de uma lista — A criação de uma lista representa a criação da</p><p>variável lista na respectiva linguagem desejada. Devemos lembrar que nessa</p><p>declaração não é necessário informar o número de</p><p>elementos, pois estamos</p><p>trabalhando com uma lista dinâmica que possibilitará armazenar um número</p><p>de elementos de forma indeterminada, logo, o tamanho é indefinido.</p><p>3Listas encadeadas simples</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Adicionar elementos em uma lista — A criação de um elemento na lista</p><p>poderá ser realizada a partir de qualquer posição, sem a necessidade de des-</p><p>locar os demais elementos. Isso ocorre devido ao fato de estarmos manipu-</p><p>lando uma lista dinâmica, na qual são modificados apenas os apontamentos,</p><p>as referências, entre os elementos, assim os mantendo nas posições de memória</p><p>originalmente criadas.</p><p>Antes de inserir um elemento na lista, o nodo, será necessário alocar um</p><p>espaço para ele, criar a variável nodo com as suas respectivas informações.</p><p>A ação posterior será identificar a posição na qual deseja adicionar o elemento</p><p>e atualizar os seus respectivos apontamentos na lista. Para isso, deverão ser</p><p>ajustados os apontamentos que indicam quem são os próximos elementos,</p><p>para que a lista permaneça com a coesão entre os seus elementos, necessária</p><p>para a sua correta manipulação.</p><p>Incluir elemento no início da lista — Incluir um novo elemento no início da</p><p>lista é uma tarefa simples, pois requer somente um apontamento. Para isso,</p><p>é necessário ajustar o apontamento no início da lista, que deverá indicar o</p><p>primeiro elemento, novo elemento criado. Este deverá apontar para o primeiro</p><p>elemento anterior à sua inserção (Figura 3).</p><p>Figura 3. Inclusão de um elemento no início de uma lista.</p><p>Fonte: Edelweiss e Galante (2009, p. 91).</p><p>Listas encadeadas simples4</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Incluir elemento no meio da lista — Para incluir um elemento em uma posição</p><p>intermediária da lista, é necessário percorrer a lista até a posição desejada e</p><p>alterar os seus apontamentos, fazendo com que o elemento anterior aponte</p><p>para o novo e este para o próximo elemento (Figura 4).</p><p>Figura 4. Inclusão de um elemento no meio de uma lista.</p><p>Fonte: Edelweiss e Galanee (2009, p. 93).</p><p>Incluir elemento ao final da lista — Incluir um novo elemento no final da</p><p>lista é uma tarefa simples, pois requer mínima modificação nos elementos</p><p>da lista. Para isso, é necessário ajustar o apontamento do último elemento</p><p>da lista, que anteriormente era nulo, para o endereço do novo nodo criado.</p><p>Este deverá ter apontamento nulo por ser o último elemento da lista, logo,</p><p>apontando para o seu fim (Figura 5).</p><p>5Listas encadeadas simples</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Figura 5. Inclusão de um elemento ao final de uma lista.</p><p>Fonte: Edelweiss e Galante (2009, p. 92).</p><p>Remover elemento em uma lista — A remoção de um elemento na lista,</p><p>assim como a inclusão, poderá ser realizada a partir de qualquer posição,</p><p>sem a necessidade de deslocar os demais elementos. Devemos salientar a</p><p>importância de que toda a vez que for realizada a exclusão de um elemento,</p><p>seja realizada a correta liberação da memória correspondente, fazendo com</p><p>que a lista armazene somente a quantidade de memória necessária para o seu</p><p>tamanho atual.</p><p>Remover elemento no início da lista — Excluir um elemento do início da</p><p>lista é uma tarefa simples. Para isso, será necessário excluir o primeiro nodo da</p><p>lista e apontar o início da lista para a posição na qual o nodo inicial apontava</p><p>como seu sucessor.</p><p>Remover elemento no meio da lista — Para excluir um elemento que se</p><p>encontra em uma posição intermediária em uma lista, será necessário percorrer</p><p>a lista até encontrar o elemento desejado, identificando o elemento anterior,</p><p>armazenado em uma variável temporária, bem como o seu posterior. Na sequ-</p><p>ência, basta realizar a atualização da informação da referência do nodo anterior</p><p>ao ser excluído, com a informação do próximo elemento que se encontra no</p><p>nodo a ser excluído. A partir desse momento, você poderá excluí-lo (Figura 6).</p><p>Listas encadeadas simples6</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Figura 6. Exclusão de um elemento no meio de uma lista.</p><p>Fonte: Edelweiss e Galante (2009, p. 95).</p><p>Remover elemento ao final da lista — Para realizar a exclusão de um elemento</p><p>ao final de uma lista, será necessário percorrer a lista até chegar no último</p><p>nodo, que tem a posição do seu próximo como nulo, sempre armazenando</p><p>em uma variável temporária a posição do nodo anterior a ele. Após a sua</p><p>identificação, será necessário apontar o nodo anterior para nulo, posição na</p><p>qual foi armazenada na variável temporária e logo após excluir o nodo final.</p><p>Excluir uma lista — Para excluir completamente uma lista, será necessário</p><p>percorrer todos os elementos, a partir do nodo inicial, excluindo nodo a nodo,</p><p>e assim liberando a alocação de memória de cada elemento. Caso a liberação</p><p>de memória não seja realizada, haverá lixo de memória no sistema, isto é,</p><p>espaço de memória ocupado, mas não mais utilizado. Isso geralmente ocorre</p><p>quando finalizamos um programa de computador de forma interrupta ou não</p><p>executamos rotinas de liberação de memória de forma controlada ao ser fina-</p><p>lizado. As bibliotecas que fazem o uso de listas geralmente têm um destrutor,</p><p>comando no qual realiza toda essa operação.</p><p>7Listas encadeadas simples</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>2 Resolução de problemas relacionados</p><p>a listas encadeadas simples</p><p>As operações básicas em uma lista encadeada são representadas por inserções,</p><p>remoções e consultas nas suas respectivas listas, de acordo com a necessidade</p><p>do usuário e documentação referente ao desenvolvimento da aplicação. Todas</p><p>essas ações devem ser realizadas com foco nas características de listas dinâmicas,</p><p>como a lista encadeada simples. Com o objetivo de facilitar o desenvolvimento</p><p>desses problemas, é recomendado realizar funções que realizam essas ações para,</p><p>assim, poderem ser reutilizadas independentemente da linguagem escolhida.</p><p>A seguir, será possível identificar alguns algoritmos usualmente desenvolvidos</p><p>para o uso de listas encadeadas simples, adaptados de Lutz (2011).</p><p>Como identificar se uma lista encadeada está vazia?</p><p>Para identificar se uma lista encadeada está vazia, basta analisar se o aponta-</p><p>mento para o início da lista encontra-se nulo, nodo inexistente. Geralmente,</p><p>as bibliotecas de listas dinâmicas têm um método que realiza essa operação</p><p>e retorna true para verdadeiro e false para falso.</p><p>Algoritmo Python</p><p>Listas encadeadas simples8</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Como acessar o primeiro elemento de uma lista?</p><p>Para realizar uma busca em uma lista, é necessário identificar primeiramente</p><p>o seu elemento inicial.</p><p>Estrutura do código:</p><p>Algoritmo Python</p><p>9Listas encadeadas simples</p><p>Laiane</p><p>Como pesquisar um elemento na lista?</p><p>A partir das características de listas dinâmicas, neste caso lista encadeada</p><p>simples, sabemos que não é possível acessar diretamente um elemento a partir</p><p>do seu identificador, como em vetores, logo, para encontrarmos a posição de</p><p>um elemento em uma lista, é necessário percorrê-la em busca do nodo fazendo</p><p>o uso de contadores para identificar a sua posição.</p><p>Algoritmo Python</p><p>Listas encadeadas simples10</p><p>Laiane</p><p>Como incluir um elemento?</p><p>Para incluir um elemento em uma lista, é necessário criar o nodo a ser incluído,</p><p>um nodo temporário para realizar a troca das referências com o nodo anterior,</p><p>bem como a posição na qual deseja incluir.</p><p>Algoritmo Python</p><p>11Listas encadeadas simples</p><p>Laiane</p><p>Como excluir um elemento na lista?</p><p>Para excluir um elemento em uma lista, é necessário criar um nodo com a</p><p>posição do nodo anterior para realizar a troca das referências, bem como a</p><p>posição na qual deseja incluir.</p><p>Algoritmo Python</p><p>Listas encadeadas simples12</p><p>Laiane</p><p>Quando o desenvolvedor fizer uso de bibliotecas de listas dinâmicas, é recomendável</p><p>realizar o estudo da biblioteca e dos métodos disponíveis, para, assim, evitar realizar</p><p>algoritmos para a resolução de problemas que se encontram disponíveis na biblioteca</p><p>escolhida.</p><p>3 Aplicação de listas encadeadas simples</p><p>As linguagens de programação têm bibliotecas com diversos métodos</p><p>que</p><p>podem ser utilizados para facilitar o uso e a manipulação de dados. Ao apli-</p><p>carmos o uso de listas encadeadas em linguagem de programação Python,</p><p>devemos compreender a sua estrutura e os métodos disponíveis para utilização,</p><p>assim, irá facilitar o desenvolvimento da aplicação.</p><p>Declaração de uma lista em Python:</p><p>Contar o número de ocorrências de um valor na lista:</p><p>Apagar uma lista:</p><p>Adicionar elementos em uma lista:</p><p>13Listas encadeadas simples</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Laiane</p><p>Remover um elemento em uma lista:</p><p>Retornar à posição de um elemento em uma lista:</p><p>Com o objetivo de facilitar os testes com listas em linguagem de programação Python,</p><p>a seguir verificamos o código utilizando os métodos nativos de listas nas quais você</p><p>poderá estudar o seu funcionamento a partir das saídas impressas. Vamos programar:</p><p>Código em Python:</p><p>Listas encadeadas simples14</p><p>Laiane</p><p>Laiane</p><p>EDELWEISS, N.; GALANTE, R. M. Estruturas de dados. Porto Alegre: Bookmann, 2009.</p><p>LORENZI, F.; MATTOS, P. N.; CARVALHO, T. Estruturas de dados. São Paulo: Thomson, 2007.</p><p>LUTZ, M. Programming Python. 4th ed. Beijing: O'Reilly, 2011.</p><p>Saída do programa:</p><p>15Listas encadeadas simples</p><p>Dica do professor</p><p>A compreensão de todos os elementos de uma lista simplesmente encadeada é de fundamental</p><p>importância para seu desenvolvimento em linguagem de programação.</p><p>Nesta Dica do Professor, você compreenderá cada um dos elementos de uma lista simplesmente</p><p>encadeada.</p><p>Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.</p><p>https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/6c41a01409c4a89d59c95b4be28b07e6</p><p>Exercícios</p><p>1) A análise e o desenvolvimento de algoritmos com o uso de listas encadeadas são de suma</p><p>importância no desenvolvimento de uma aplicação. Durante essa ação, o desenvolvedor</p><p>precisa realizar a análise prévia dos códigos de uma determinada aplicação para iniciar seu</p><p>desenvolvimento.</p><p>Analise o algoritmo a seguir e marque a alternativa que representa seu significado:</p><p>def acao(self,item):</p><p>atual = self.inicio</p><p>status = False</p><p>while atual != None and not status:</p><p>if atual.dado()==item:</p><p>status = True</p><p>else:</p><p>atual = atual.prox()</p><p>return status</p><p>A) A inclusão de elementos no final da lista.</p><p>B) A inclusão em posição específica.</p><p>C) Procura um elemento na lista.</p><p>D) Remove um elemento específico da lista.</p><p>E) Remove o último elemento da lista.</p><p>2) A lista simplesmente encadeada é uma lista do tipo dinâmica e apresenta vantagens em</p><p>relação a listas estáticas, como vetores.</p><p>A partir da afirmação anterior, marque a opção que infoma uma das vantagens das listas</p><p>simplesmente encadeadas.</p><p>A) Realizam a alocação contínua em memória.</p><p>B) Permitem variação de seu tamanho em tempo de execução.</p><p>Laiane</p><p>Laiane</p><p>O algoritmo inicia com o apontamento para o início da lista e declara uma variável como Falso. No segundo momento (comando While), percorre a lista enquanto não chegar ao seu final e o status for diferente de Falso. Dentro do laço com o comando IF, verifica se o dado recebido na função encontra-se no Nodo; caso afirmativo, troca o status para True, informando que encontrou o valor.Ao final, retorna o status se encontrou ou não o conteúdo na lista.</p><p>Laiane</p><p>QUESTÃO 2: Uma lista simplesmente encadeada permite o aumento e a redução do número de elementos em tempo de execução, sem precisar alocar posições contínuas de memória, como corre em listas estáticas. Na lista encadeada não existe busca de acordo com a indexação, pois a pesquisa é realizada sequencialmente a partir do primeiro elemento, Nodo. A inserção e a remoção de elementos podem ser realizadas em qualquer posição, sem a necessidade de reordenação dos demais elementos, mas, apesar disso, requerem percorrer nodo a nodo até sua posição.</p><p>Laiane</p><p>C) Possuem baixo custo computacional para realizar pesquisa, pois acessam um elemento sem</p><p>percorrer tudo.</p><p>D) Realizam a inserção de elementos de forma eficaz, pois sempre os adicionam ao final da lista.</p><p>E) Realizam a remoção de elementos de forma eficaz, pois sempre os removem ao final da lista.</p><p>3) A análise e o desenvolvimento de algoritmos com o uso de listas encadeadas são de suma</p><p>importância no desenvolvimento de uma aplicação. Durante essa ação, o desenvolvedor</p><p>precisa realizar a análise prévia dos códigos de uma determinada aplicação para iniciar seu</p><p>desenvolvimento.</p><p>Analise o algoritmo a seguir e marque a alternativa que representa seu significado:</p><p>1 def acao (self,item)</p><p>2 temp = No(item)</p><p>3 temp.prox(self.ini)</p><p>4 self.ini = temp</p><p>A) Adiciona um novo elemento em uma posição específica da lista.</p><p>B) Adiciona um novo elemento no início da lista.</p><p>C) Remove um elemento em uma posição específica da lista.</p><p>D) Remove o primeiro elemento.</p><p>E) Remove o último elemento da lista.</p><p>4) A lista simplesmente encadeada é uma lista do tipo dinâmica e apresenta vantagens em</p><p>relação a listas estáticas, como vetores.</p><p>A partir dessa afirmação, marque a opção que informa um tipo de lista em que é mais</p><p>apropriado utilizar listas simplesmente encadeadas em detrimento de listas do tipo estáticas,</p><p>como vetores.</p><p>A) Na utilização de listas que têm seu tamanho previamente definido e que não irá se modificar</p><p>com o tempo.</p><p>B) Listas de tamanho reduzido que raramente modificam seus elementos.</p><p>Laiane</p><p>Laiane</p><p>A função, na linha 1, recebe como parâmetro um valor que será utilizado internamente. Na linha 2, realiza a criação de um No com o dado recebido. Na linha 3, realiza a atualização do ponteiro prox para o primeiro elemento da lista. Na linha 4, adiciona o ponteiro do início da lista para o novo No, inserindo o elemento sempre no início da lista.</p><p>Laiane</p><p>QUESTÃO 4: Uma lista simplesmente encadeada é recomendada para utilização em grandes listas, que podem ter muitas inserções e exclusões em quaisquer posições, cujo tamanho é indefinido. Por ser uma lista dinâmica, não tem sua pesquisa indexada e a varredura ocorre apenas em uma direção, pois possui somente o apontamento para o próximo elemento da lista.</p><p>C) Listas grandes que realizam diversas inserções em diferentes posições.</p><p>D) Listas que possibilitem ser percorridas do final para o início.</p><p>E) Listas que requerem pesquisa indexada a uma posição específica de forma direta.</p><p>5) As listas simplesmente encadeadas possuem características únicas em seus nodos,</p><p>diferentemente das listas estáticas.</p><p>Em relação a essas características únicas, leia as alternativas a seguir e selecione a correta.</p><p>A) Cada nodo da lista possui um ponteiro para os endereços dos elementos anterior e sucessor</p><p>do respectivo nodo.</p><p>B) Seu nodo possui somente o conteúdo a ser armazenado do tipo primitivo ou criado pelo</p><p>usuário.</p><p>C) Os nodos são gravados em posições contínuas em memória.</p><p>D) O nodo tem seu conteúdo definido pelo usuário e um ponteiro para o próximo elemento.</p><p>E) Os nodos, por serem gravados de forma contínua em memória, não possuem ponteiros em</p><p>seus conteúdos.</p><p>Laiane</p><p>Uma lista simplesmente encadeada possui em seu nodo uma variável com a posição de memória do próximo elemento, bem como seu respectivo conteúdo. Devido a essa característica, seu armazenamento não precisa ser linear em memória, pois armazena a localização do próximo nodo.</p><p>Laiane</p><p>Na prática</p><p>O desenvolvimento de listas encadeadas deve ser feito com um planejamento adequado, a partir de</p><p>um problema proposto. Antes de iniciar o desenvolvimento, recomenda-se fazer uma lista de</p><p>operações que o sistema deverá atender e, posteriormente, buscar bibliotecas que as realizem ou</p><p>desenvolvê-las, caso não existam.</p><p>Neste Na Prática, acompanhe Lúcia na primeira etapa do desenvolvimento do planejamento de um</p><p>sistema, buscando definir as operações que deverão ser realizadas pela lista encadeada.</p><p>Aponte a câmera para o</p><p>código e acesse o link do</p><p>conteúdo ou clique no</p><p>código para acessar.</p><p>https://statics-marketplace.plataforma.grupoa.education/sagah/8f413ea9-b714-4dc2-a43a-ed20658adac6/b9adcd6d-e4a2-4e65-8ba4-94738ec6c28b.png</p><p>Saiba</p><p>+</p><p>Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:</p><p>Listas encadeadas – entendendo o conceito</p><p>Neste vídeo, você verá o que é a lista encadeada e suas particularidades na estrutura de dados.</p><p>Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.</p><p>Construindo uma lista encadeada em Python</p><p>Neste vídeo, você acompanha o passo a passo de como programar uma lista encadeada na</p><p>linguagem Python.</p><p>Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.</p><p>Listas simplesmente encadeadas</p><p>Neste link, você acessa conceitos e estruturas de listas simplesmente encadeadas.</p><p>Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.</p><p>Algoritmos e estruturas de dados</p><p>Neste link, você confere informações importantes sobre a estrutura e pseudocódigo de listas</p><p>encadeadas.</p><p>https://www.youtube.com/embed/bqwIoNiHAuQ</p><p>https://www.youtube.com/embed/jIM87UqOq3g</p><p>https://br.ccm.net/faq/10263-listas-simplesmente-encadeadas</p><p>Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.</p><p>Criação de listas em Python</p><p>Esta página contém informações de como iniciar o desenvolvimento de listas em Python com</p><p>códigos comentados.</p><p>Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.</p><p>https://pt.wikibooks.org/wiki/Algoritmos_e_Estruturas_de_Dados/Lista_encadeada</p><p>http://www.algoritmosempython.com.br/cursos/algoritmos-python/estruturas-dados/listas</p>