Skip to content

Latest commit

Β 

History

History
53 lines (37 loc) Β· 1.79 KB

File metadata and controls

53 lines (37 loc) Β· 1.79 KB

🎡 Playlist Manager Console App (C++ / Sparse Set)

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.


βš™οΈ Project Features

  • 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

🧩 Data Structures Used

  • 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

πŸ’» Console Commands

πŸ† Bonus Features

  • Suffix Array Build: O(n logΒ² n) (or O(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

πŸš€ How to Compile and Run

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