This console-based C++ application allows users to manage artists, songs, and playlists using efficient data structures such as Sparse Set, Linked List, and Suffix Array for optimized text search.
- Manage artists and their songs using a Sparse Set
- Each artist has a list of songs implemented via linked list
- Efficient word search in lyrics using Suffix Array (
O(m log n)) - Song, playlist, and artist management through text commands
- Playlist sorting using in-place Quick Sort based on release year
- Playback queue implemented with array-based circular queue
- All interactions are done via a simple command-line interface
- Sparse Set: For managing artists and playlists efficiently
- Linked List: For storing each artistβs songs
- Suffix Array: To support fast substring search in song lyrics
- Array-based Queue: For handling playback of multiple playlists
- Suffix Array Build:
O(n logΒ² n)(orO(n log n)for extra credit) - Generic Data Structures: Designed for reusability and flexibility
- Optimized Search: Faster data retrieval than naive implementations
π¦ PlaylistManager/ β£ π main.cpp β£ π Artist.h / Artist.cpp β£ π Song.h / Song.cpp β£ π SongList.h / SongList.cpp β£ π PlayList.h / PlayList.cpp β£ π Spars.h / Spars.cpp β£ π Spars_PL.h / Spars_PL.cpp β£ π Queue.h / Queue.cpp β£ π README.md
Use the following command to compile the project:
g++ -std=c++17 main.cpp Artist.cpp PlayList.cpp Queue.cpp Song.cpp SongList.cpp Spars.cpp Spars_PL.cpp -o playlist_manager
./playlist_manager