Você está trabalhando em um projeto para desenvolver um sistema de agendamento de trens para uma rede ferroviária movimentada.
Você ficou responsável por desenvolver um protótipo para as rotas de trem do sistema de agendamento. Cada rota é uma sequência de estações de trem em que um determinado trem para.
Sua equipe decidiu usar uma lista duplamente encadeada para representar cada rota de trem no cronograma. Cada estação ao longo da rota do trem será representada por um nó na lista encadeada.
Você não precisa se preocupar com os horários de chegada e de partida nas estações. Cada estação será representada simplesmente por um número.
As rotas podem ser estendidas, adicionando estações ao início ou ao fim de uma rota. Também podem ser encurtadas, removendo estações do início ou do fim de uma rota.
Às vezes uma estação é fechada e, nesse caso, ela precisa ser removida da rota, mesmo que não esteja no início nem no fim dela.
O tamanho de uma rota não é medido pela distância que o trem percorre, mas por quantas estações ele para.
A lista encadeada é uma estrutura de dados fundamental na ciência da computação, frequentemente usada na implementação de outras estruturas de dados. Como o nome sugere, é uma lista de nós que estão ligados entre si. É uma lista de "nós", em que cada nó se liga ao seu vizinho ou aos seus vizinhos. Em uma lista simplesmente encadeada, cada nó se liga apenas ao nó que vem depois dele. Em uma lista duplamente encadeada, cada nó se liga tanto ao nó que vem antes quanto ao nó que vem depois.
Se você quiser se aprofundar em listas encadeadas, confira este artigo, que explica o assunto com desenhos bem explicativos.
Crie sua conta no Exercism para aprender e dominar Kotlin com 88 exercícios e mentoria humana de verdade, tudo de graça.