基于Trie的通讯录和通过姓名和联系电话进行高效搜索

3

使用trie数据结构开发通讯录是一种已知的方法。这是一种针对字符串的高效数据结构。假设我们想要为基于姓名、号码等的通讯录创建高效的搜索机制,那么什么是能够实现内存高效和更快速地基于任何类型的搜索术语进行搜索的有效数据结构呢?


1
数字只是由数字字符组成的字符串,或者至少没有任何东西阻止您将它们表示为这样。对于这个特定的应用程序,我想不到任何不可能或低效的数据类型可以表示为字符串。您可能无法有效地将图片表示为字符串,也不能使用 trie 对它们进行搜索,但那不是您典型的地址簿搜索。 - n. m.
1个回答

3
这是一个奇怪的问题,或许你应该提供更多信息,但你不仅可以将Trie数据结构用于字符串,还可以用于许多其他数据类型。Trie的定义是使用相邻树模型构建字典。我知道一种叫作kart-trie的数据结构,它类似于Trie,但使用二叉树模型。因此,虽然使用了不同的树模型,但其实是相同的数据结构。kart-trie使用聪明的交替键算法,在二叉树中隐藏了Trie数据结构。它不是一个patricia trie或radix-trie。

  1. 适用于管理带通配符配置树的好算法?
  2. http://code.dogmap.org/kart/

但我认为三元搜索树也能够达到同样的效果:

  1. http://en.wikipedia.org/wiki/Ternary_search_tree
  2. http://igoro.com/archive/efficient-auto-complete-with-a-ternary-search-tree/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接