Untitled
unknown
plain_text
2 years ago
2.9 kB
3
Indexable
#include<iostream> #include<unordered_map> #include<unordered_set> #include<string> class FriendsGraph { private: std::unordered_map<std::string, std::unordered_set<std::string>> adjacencyList; public: void addFriend(const std::string& name) { if (adjacencyList.find(name) == adjacencyList.end()) { // Add a new friend to the graph adjacencyList[name] = std::unordered_set<std::string>(); std::cout << "Friend added: " << name << std::endl; } else { std::cout << "Friend already exists: " << name << std::endl; } } void makeFriendship(const std::string& friend1, const std::string& friend2) { if (adjacencyList.find(friend1) != adjacencyList.end() && adjacencyList.find(friend2) != adjacencyList.end()) { // Add an edge between friends adjacencyList[friend1].insert(friend2); adjacencyList[friend2].insert(friend1); std::cout << "Friendship established between " << friend1 << " and " << friend2 << std::endl; } else { std::cout << "Invalid friend names. Please ensure both friends exist." << std::endl; } } void displayFriends() { std::cout << "Friends Graph:" << std::endl; for (const auto& entry : adjacencyList) { std::cout << entry.first << " has friends: "; for (const auto& friendName : entry.second) { std::cout << friendName << " "; } std::cout << std::endl; } } }; int main() { FriendsGraph friendsGraph; int choice; do { std::cout << "\nFriends Graph Management\n"; std::cout << "1. Add Friend\n"; std::cout << "2. Make Friendship\n"; std::cout << "3. Display Friends\n"; std::cout << "0. Exit\n"; std::cout << "Enter your choice: "; std::cin >> choice; switch (choice) { case 1: { std::string newFriend; std::cout << "Enter the friend's name: "; std::cin >> newFriend; friendsGraph.addFriend(newFriend); break; } case 2: { std::string friend1, friend2; std::cout << "Enter the names of two friends to make them friends: "; std::cin >> friend1 >> friend2; friendsGraph.makeFriendship(friend1, friend2); break; } case 3: friendsGraph.displayFriends(); break; case 0: std::cout << "Exiting the program.\n"; break; default: std::cout << "Invalid choice. Please try again.\n"; } } while (choice != 0); return 0; }
Editor is loading...
Leave a Comment