Ми працюємо в компанії, що займається потоковим передаванням музики.
Наше завдання - створити можливість плейлистів для застосунку музичного плеєра.
Напишіть прототип застосунку музичного плеєра.
Для прототипу кожна пісня просто позначається числом. Маючи діапазон чисел (ідентифікатори пісень), створіть однозвʼязний список.
Маючи однозвʼязний список, ми повинні мати змогу розвернути його, щоб відтворити пісні у зворотному порядку.
Звʼязний список - фундаментальна структура даних у компʼютерних науках, яку часто використовують у реалізації інших структур даних.
Найпростіший різновид звʼязного списку - однозвʼязний список. Це означає, що кожен елемент (або «вузол») містить дані та щось, що вказує на наступний вузол у списку.
Якщо ми хочемо заглибитися у звʼязні списки, варто поглянути на цю статтю, де все пояснено за допомогою гарних малюнків.
Ми вже підготували загальну структуру класу List.
У ній є приватні змінні head типу Element* та current_size типу size_t, які ми можемо використати.
Структуру Element також надано: вона має дві змінні, data типу int та next типу Element*.
Подробиці можна побачити в заголовному файлі simple_linked_list.h. Цей файл не обовʼязково змінювати, але можна, якщо це відповідає нашим потребам.
Тести викликають функції такими, як вони надані в simple_linked_list.cpp, тож не змінюйте їхні сигнатури. Можна додати більше функцій і членів, якщо потрібно.
Хоча заголовний файл містить сирі вказівники, можна вибрати іншу реалізацію.
Зареєструйтеся на Exercism, щоб вивчати й опановувати C++, а також 19 концепцій100 вправ та справжнє наставництво від людей, і все це безкоштовно.