Data structures 音乐播放队列应该使用什么数据结构?

Data structures 音乐播放队列应该使用什么数据结构?,data-structures,spotify-queue,Data Structures,Spotify Queue,我正在制作一个音乐流应用程序。其中一个功能是一个播放队列,与Spotify非常相似,在该队列中,歌曲将自动从您开始播放的艺术家、专辑或播放列表中播放,或者播放您已排队的歌曲(如果有) 我正在考虑为此需要什么样的数据结构。我目前正在权衡使用优先级队列的选项,其中排队歌曲的优先级高于非排队歌曲;或两个正常队列,一个自动队列和一个排队歌曲队列。我也愿意接受任何更好的解决方案 我应该选择什么数据结构?最有可能是两个队列 对于优先级队列(至少a),操作需要O(logn),其中对于两个队列也需要O(1)。这

我正在制作一个音乐流应用程序。其中一个功能是一个播放队列,与Spotify非常相似,在该队列中,歌曲将自动从您开始播放的艺术家、专辑或播放列表中播放,或者播放您已排队的歌曲(如果有)

我正在考虑为此需要什么样的数据结构。我目前正在权衡使用优先级队列的选项,其中排队歌曲的优先级高于非排队歌曲;或两个正常队列,一个自动队列和一个排队歌曲队列。我也愿意接受任何更好的解决方案


我应该选择什么数据结构?

最有可能是两个队列

对于优先级队列(至少a),操作需要O(logn),其中对于两个队列也需要O(1)。这并不是说它会产生巨大的差异,除非您有一个性能非常关键的应用程序,并且有足够的项可以真正产生显著的差异(堆可能会带来足够的开销,使它在一个小的
n
中变慢)

两个队列还应该使实现更简单、更容易理解,这应该是这里的决定因素


你就不能只为选定的歌曲排一个队吗?如果队列为空,则可以随机生成下一首歌曲,前提是您不想显示下几首将播放但不在队列中的歌曲


随机便笺-您可能希望跟踪已播放的歌曲,以尽量减少生成歌曲的次数,从而消除同一首歌曲播放太频繁的可能性-为此,您可能需要使用一个。

最有可能的两个队列

对于优先级队列(至少a),操作需要O(logn),其中对于两个队列也需要O(1)。这并不是说它会产生巨大的差异,除非您有一个性能非常关键的应用程序,并且有足够的项可以真正产生显著的差异(堆可能会带来足够的开销,使它在一个小的
n
中变慢)

两个队列还应该使实现更简单、更容易理解,这应该是这里的决定因素


你就不能只为选定的歌曲排一个队吗?如果队列为空,则可以随机生成下一首歌曲,前提是您不想显示下几首将播放但不在队列中的歌曲


一个随机便笺-您可能希望跟踪已播放的歌曲,以最大限度地减少生成歌曲的次数,从而消除同一首歌曲播放太频繁的可能性-为此,您可能可以使用。

+1,因为这显示了解决手头问题的更多尝试,而不是许多获得相当多赞成票且没有反对票的问题反对票。我猜它被否决的原因是因为你可以研究适用的数据结构来了解运行时间和编程复杂性,并且(至少尝试)得出的结论是更好的你自己,但是你确实考虑了两个解决方案,所以,我不知道。也许它给人的印象是过于基于意见。+1因为这表明,与许多获得相当多赞成票而没有反对票的问题相比,更多的是试图解决手头的问题。我猜它被否决的原因是因为你可以研究适用的数据结构来了解运行时间和编程复杂性,并且(至少尝试)得出的结论是更好的你自己,但是你确实考虑了两个解决方案,所以,我不知道。也许它给人的印象过于基于观点。“你就不能只有一个队列吗?”-我确实希望在队列中的歌曲出现之后再播放歌曲。不过,谢谢!这是一个很有帮助的回答。“你就不能只有一个队列吗?”-我确实希望在队列中的歌曲出现之后再播放歌曲。不过,谢谢!这是一个有益的回答。