Write a method named FriendList
that accepts a file name as a parameter and reads friend relationships from a file and stores them into a compound collection that is returned.
You should create a dictionary where each key is a person's name from the file, and the value associated with that key is a setof all friends of that person.
Friendships are bi-directional: if Marty is friends with Danielle, Danielle is friends with Marty.
The file contains one friend relationship per line, consisting of two names.
The names are separated by a single space.
You may assume that the file exists and is in a valid proper format.
If a file named buddies.txt
looks like this:
Marty Cynthia
Danielle Marty
Then the call of FriendList("buddies.txt")
should return a dictionary with the following contents:
{{"Cynthia", {"Marty"}}, {"Danielle", {"Marty"}}, {"Marty", {"Cynthia", "Danielle"}}}
Constraints:
- You may open and read the file only once. Do not re-open it or rewind the stream.
- You should choose an efficient solution. Choose data structures intelligently and use them properly.
- You may create one collection (list, set, dictionary, etc.) or nested/compound structure as auxiliary storage.
A nested structure, such as a set of lists, counts as one collection.
(You can have as many simple variables as you like, such as ints or strings.)