2011-08-04 19 views
3

這是一種基於特里數據結構開發地址簿的已知方法。這是一個有效的字符串數據結構。假設如果我們想要爲基於名稱,數字等的地址簿創建一個有效的搜索機制,那麼什麼是有效的數據結構,以便根據任何類型的搜索條件進行高效,快速的搜索,而不管數據類型如何?基於Trie的地址簿和高效搜索的名稱和聯繫號碼

+1

數字只是數字字符串,或者至少沒有任何東西阻止您將它們表示爲這樣。我無法想象一種數據類型,對於這個特定的應用程序來說,這是不可能的或者效率低下的字符串。您可能無法將圖片有效地表示爲字符串,或者使用特里搜索它們,但這不是您典型的地址簿搜索。 –

回答

3

這是一個奇怪的問題,也許你應該添加更多的信息,但是你可以使用一個trie數據結構不僅用於字符串,而且還用於許多其他數據類型。一個trie的定義是用一個相鄰的樹模型作一個詞典。我知道一個類似於trie的kart-trie,並使用二叉​​樹模型。所以它是相同的數據結構,但具有不同的樹模型。 kart-trie使用巧妙的密鑰交替算法來隱藏二叉樹中的trie數據結構。這不是一個帕特里夏樹,或者一個基數樹。

  1. Good algorithm for managing configuration trees with wildcards?
  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/
相關問題