The implementation uses B-Tree, hash table and adjacency list. B-Tree is used to perform range search, while hash table and adjacency list are used to manage relationships between users.
Functionality:
- insert and delete users from the social network
- read profile data from disk and write new users into profile data on disk
- search for users either with a specific name or with a name range
- add friendship relationships between users
- list friends' information of a user
- check common friends of two users
- find the degree of separation between two users (implemented using Dijkstra's algorithm)
- print data in the structure of B-Tree