The main socializing tool for students today is Facebook. There are many interesting computational questions connected to Facebook, such as the “degree of separation” between two people.
For example, in the diagram below, there are many different paths between Abby and Alberto.
Some of these paths are:
• Abby → Zoey → Alberto
• Abby → Natalie → Zoey → Alberto
• Abby → George → Ali → Kara → Richardo → Jeff → Alberto
The shortest path between Abby and Alberto has two steps (Abby → Zoey, and Zoey → Alberto),
so we say the degree of separation is 2. Additionally, Alberto would be a friend of a friend of
Abby.
You can assume an initial configuration of who is friends with who as outlined in the diagram
above. You will need to store these relationships in your program. These relationships can change
though, and your program needs to handle these changes. In particular, friendships can begin,
possibly with new people. Friendships can end. You should be able to find friends of friends and
determine the degree of separation between two people.