1class ThroneInheritance {2public:3ThroneInheritance(string kingName) {4curr_king = kingName;5}67void birth(string parentName, string childName) {8children[parentName].push_back(childName);9}1011void death(string name) {12dead.insert(name);13}1415void rec(string parent) {16if (!dead.count(parent)) inheritance.push_back(parent);17for (auto child : children[parent]) rec(child);18}1920vector<string> getInheritanceOrder() {21inheritance = {};22rec(curr_king);23return inheritance;24}2526private:27unordered_map<string, vector<string>> children;28vector<string> inheritance;29unordered_set<string> dead;30string curr_king;31};