你在一家音乐流媒体公司工作。
你的任务是为你的音乐播放器应用创建一个播放列表功能。
为音乐播放器应用写一个原型。
在原型中,每首歌就简单地用一个数字表示。 给定一个数字范围(也就是歌曲 ID),创建一个单向链表。
给定一个单向链表,你应该能够反转这个链表,从而按相反的顺序播放歌曲。
链表是计算机科学中的一种基础数据结构,常被用来实现其他数据结构。
最简单的链表是单向链表。 也就是说,每个元素(或称“节点”)都包含数据,以及指向链表中下一个节点的指针。
如果你想更深入地了解链表,可以看看这篇文章,它用直观的插图做了讲解。
我们已经为你提供了List类的整体结构。
它包含你可以直接使用的私有变量:类型为Element*的head和类型为size_t的current_size。
Element结构体也已经给出,它有两个变量:类型为int的data和类型为Element*的next。
具体细节可以查看simple_linked_list.h。你不必修改这个文件,但如果它符合你的需要,也可以修改。
测试使用的是simple_linked_list.cpp中提供的函数,不要修改它们的签名。如果有需要,你可以添加更多函数和成员。
虽然头文件中使用裸指针,但你可以自由选择其他实现方式。