MAPA – ESOFT – ESTRUTURAS DE DADOS – 52_2025
Uma rede de lojas de produtos naturais utiliza um sistema automatizado para planejar as rotas de entrega dos caminhões. Cada parada da rota representa uma loja que deve ser visitada. No sistema antigo, sempre que uma nova loja era adicionada no meio da rota, era necessário realocar todos os elementos da estrutura, resultando em lentidão e consumo excessivo de memória. Para resolver esse problema, decidiu-se utilizar uma estrutura de dados dinâmica, onde cada ponto da rota (loja) pudesse ser facilmente inserido ou removido sem a necessidade de deslocar os outros elementos da lista. Você foi contratado para ajudar a equipe de desenvolvimento a implementar essa nova estrutura. Abaixo está o código inicial de uma lista ligada com algumas funções incompletas. Seu desafio é completar o método inserir_na_posicao para que ele insira uma nova loja (representada por seu nome) em uma posição específica da rota.
class Loja:
def __init__(self, nome):
self.nome = nome
self.proximo = None
class RotaEntrega:
def __init__(self):
self.inicio = None
def inserir_inicio(self, nome_loja):
nova_loja = Loja(nome_loja)
nova_loja.proximo = self.inicio
self.inicio = nova_loja
def inserir_na_posicao(self, nome_loja, posicao):
# COMPLETE AQUI: implementar a lógica de inserção na posição
pass
def imprimir_rota(self):
atual = self.inicio
while atual:
print(f” {atual.nome}”)
atual = atual.proximo
# TESTE DO CÓDIGO
rota = RotaEntrega()
rota.inserir_inicio(“Loja D”)
rota.inserir_inicio(“Loja B”)
rota.inserir_inicio(“Loja A”)
# Inserir a “Loja C” entre “Loja B” e “Loja D” (posição 2)
rota.inserir_na_posicao(“Loja C”, 2)
print(” Rota final:”)
rota.imprimir_rota()
# Saída esperada:
# Loja A
# Loja B
# Loja C
# Loja D
IMPORTANTE:
- Acesse o link com um vídeo tutorial para ajudá-lo nesse processo de criação e desenvolvimento. O acesso deverá ser realizado em: Materiais >> Material da Disciplina
2. Responda a todos os itens, seguindo como roteiro os tópicos elencados anteriormente, e coloque em um único arquivo.
3. A entrega deve ser feita por meio do Template de entrega da atividade MAPA, disponível no material da disciplina.
4. Antes de enviar sua atividade, certifique-se de que respondeu a todas as perguntas e realize uma cuidadosa correção ortográfica.
5. Após o envio não são permitas alterações, ou modificações. Logo, você tem apenas uma chance de enviar o arquivo corretamente. Revise bem antes de enviar!
6. Lembre-se de que evidências de cópias de materiais, incluindo de outros estudantes, sem devidas referências, serão inquestionavelmente zeradas. As citações e referências, mesmo que do livro da disciplina, devem ser realizadas conforme normas da Instituição de Ensino.
7. Não são permitidas correções parciais no decorrer do módulo, ou seja, o famoso: “professor, veja se minha atividade está certa?”. Isso invalida seu processo avaliativo. Lembre-se de que a interpretação da atividade também faz parte da avaliação.
8. Procure sanar suas dúvidas junto à mediação em tempo hábil sobre o conteúdo exigido na atividade, de modo que consiga realizar sua participação.
9. Atenção ao prazo de entrega, evite envio de atividade em cima do prazo. Você pode ter algum problema com internet, computador, software etc., e os prazos não serão flexibilizados, mesmo em caso de comprovação.
Bons estudos!