我可以使用什么数据结构来查找给出此人姓名的人的电话号码?
答案 0 :(得分:2)
假设您只使用此人的姓名进行查询,最佳选择是使用关联数据结构。这基本上是一种数据结构,通常实现为哈希表或平衡二进制搜索树,它将数据存储为key =>值(或以另一种方式表示为(键,值)对)。您使用键查询数据结构,它返回相应的值。在您的情况下,密钥将是该人的姓名,值将是电话号码。
不要自己为此实现散列表或二进制搜索树,而是检查您的语言是否已经在其库中具有类似的内容,而现在大多数语言都是如此。 Python有dict
,perl有哈希,Java和C#有Map
,而C ++有STL map
。
如果您为同一个密钥设置多个值(例如,同一个人拥有多个电话号码),事情可能会变得有点棘手,但有一些解决方法,例如使用list
/ vector
作为值,或使用稍微不同的结构,支持同一个键的多个值(例如STL multimap
)。但无论如何你可能不需要担心。
答案 1 :(得分:1)
关联数组,例如哈希表。
真的,任何将键映射到值的东西。具体的数据结构取决于您使用的语言(除非您想要实现自己的语言,在这种情况下,您可以自由统治)。