Trabalhas numa empresa de streaming de música.
Deram-te a tarefa de criar uma funcionalidade de playlists para o teu reprodutor de música.
Escreve um protótipo da aplicação de leitor de música.
Para o protótipo, cada música será representada apenas por um número. Dado um intervalo de números (os IDs das músicas), cria uma lista simplesmente ligada.
Dada uma lista simplesmente ligada, deves conseguir inverter a lista para reproduzir as músicas pela ordem inversa.
A lista ligada é uma estrutura de dados fundamental na informática, usada frequentemente na implementação de outras estruturas de dados.
O tipo mais simples de lista ligada é a lista simplesmente ligada. Isso significa que cada elemento (ou «nó») contém dados, a par de algo que aponta para o nó seguinte da lista.
Se quiseres aprofundar os teus conhecimentos sobre listas ligadas, espreita este artigo, que explica tudo com uns desenhos muito bons.
Fornecemos-te a estrutura geral de uma classe List.
Tem as variáveis privadas head, do tipo Element*, e current_size, do tipo size_t, que podes usar.
A estrutura Element também foi fornecida e tem duas variáveis: data, do tipo int, e next, do tipo Element*.
Podes ver os detalhes em simple_linked_list.h. Não tens de alterar esse ficheiro, mas podes fazê-lo se for adequado às tuas necessidades.
Os testes usam as funções tal como são fornecidas em simple_linked_list.cpp, não alteres a assinatura delas. Podes acrescentar mais funções e membros, se quiseres.
Embora o ficheiro de cabeçalho inclua ponteiros brutos, tens a liberdade de escolher uma implementação diferente.
Inscreve-te no Exercism para aprenderes e dominares C++ com 19 conceitos100 exercícios, e mentoria humana real, tudo grátis.