$30
In this Homework, you are required to design a Spotify-like environment and program using linked lists. All data should be stored in list lists. Your program will work on the command line where the commands are given in one line as:
C <Name> : Creates a person with the name given in the line eg: C Ahmet
Attention: Only one person with a given name can exist in storage (only one Ahmet can be added)
S <Name> <Song> : Sets the <Name> likes the <Song> eg: C Ahmet Show must go on
Attention: Consider the case <Name> has not a created before.
E <Name> <Song> : Erases the assignment (<Name> doesn’t like the song anymore).
L <Name> : Lists the songs of the person <Name> likes.
Attention: Consider the case no song has been assigned to the person <Name>.
N : List all name of registered people
M : List all the songs that liked by anyone
R: Recommends the most popular 3 different songs (You have to seek for each individuals list and count encounters for each song)
Also, contemplate other cases that will cause the program to crash
Sample Data Structure
A linked list that stores name of people:
Presuppositions & Obligations
• All personal names consist of a single word, e.g. Albert, Berfu, or Cafer. Thus you can assume that, for such as S or E, the second word of the command is the first word of a song’s name (If any, following words is the continuation of the song name)
• Every data should be stored in linked lists (except for necessary primitive data types such as integer, char, etc.)
• Analyze the time complexity of each data structure and function that you utilize in Big-O notation.