C++ 使用trie数据结构链接不同类型的信息

C++ 使用trie数据结构链接不同类型的信息,c++,data-structures,linked-list,trie,C++,Data Structures,Linked List,Trie,因此,我想使用数据结构为电话目录创建一个记录,该记录存储(ID、FIRST\u NAME、LAST\u NAME) 但是我非常困惑!如何将id的trie与名字和姓氏的trie链接起来 在某种程度上,我可以通过手机ID搜索用户名 我非常感谢任何想法或建议只需将信息存储在堆分配的对象中即可。在各种尝试中存储指向它的指针 给定 您将插入一个新用户,如下所示: User * bart = new User{"123", "Bart", "Simpson"}; id_trie.insert(bart-&g

因此,我想使用数据结构为电话目录创建一个记录,该记录存储(ID、FIRST\u NAME、LAST\u NAME)

但是我非常困惑!如何将id的trie与名字和姓氏的trie链接起来 在某种程度上,我可以通过手机ID搜索用户名


我非常感谢任何想法或建议

只需将信息存储在堆分配的对象中即可。在各种尝试中存储指向它的指针

给定

您将插入一个新用户,如下所示:

User * bart = new User{"123", "Bart", "Simpson"};
id_trie.insert(bart->id, bart);
fn_trie.insert(bart->first_name, bart);
ln_trie.insert(bart->last_name, bart);
其中,三个trie数据结构可以使用如下所示的节点:

struct trie_node {
    User * user;
    std::map<char, trie_node *> children;
};
struct trie\u节点{
用户*用户;
地图儿童;
};
其中
user
nullptr
或指向
用户的指针

练习:调整此选项以允许多个用户(例如,如果他们共享相同的名字或姓氏)

struct trie_node {
    User * user;
    std::map<char, trie_node *> children;
};