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



所以我想为一个使用try 数据结构存储(ID,FIRST_NAME,LAST_NAME(的电话目录创建一个记录。

但我超级困惑! 如何将 ID 的尝试与 FIRST_NAMEs 和LAST_NAMEs 的尝试联系起来 以一种使我能够通过手机ID搜索用户名的方式。

我真的很感激任何想法或建议

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

鉴于

struct User {
std::string id, first_name, last_name;
};

您将像这样插入一个新用户:

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;
};

其中usernullptr或指向User的指针。

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

最新更新