algorithm - 设计电话簿的数据结构

标签 algorithm data-structures

为电话簿设计一个数据结构,用于存储姓名和电话号码,以便我们可以搜索给定姓名的键,反之亦然。

我们可以如下使用2个 HashMap

Map<String,int>
Map<int,String>

但它需要两倍的内存。有人可以提出任何其他解决方案吗?

最佳答案

一个人可以拥有多个号码,一个号码可以属于多个人(家庭成员)。正如尼克所说,一般情况下,电话号码可以包含非数字字符。所有考虑,而不是Map<String,int>你可能正在使用 Map<String,List<String>> ,或者只有指向字符串的指针(在 C++ 术语中),以避免冗余:Map<String*,List<String*>> .

关于algorithm - 设计电话簿的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6482606/

相关文章:

algorithm - 在图中,找到具有特定属性的最长路径?

c++ - 函数给出错误的结果

PHP算法从单个集合中生成特定大小的所有组合

c++ - 在 C++ 中制作嵌套列表的最佳方法是什么?

java - 异构二叉搜索树

algorithm - 有效的猜测算法

c++ - 在 C++ STL 中分隔字母字符

c++ - 我无法找到这些代码段的 Big O 表示法

c++ - 经线和纬线的数据模型

C++ 一个一个地传递一个结构数组——如此简单,但我被难住了