trie樹是一種實現字串快速檢索的多叉樹結構。把一堆字串壓縮到樹結構中構成trie樹,實現快速檢索。
它的優點是:利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高。
trie樹的題一般應用於「字首檢索」、「最大異或值」這類題。先把全部資料儲存到trie樹中,再遍歷每個資料,進行檢索。
字首統計
**列表
很簡單的題。可以先把資料全部儲存到trie樹中再檢索,也可以邊插入邊判斷。
最大異或對
涉及到位運算的題,可以把數字看成31位二進位制數,再把每一位看成乙個字元,轉換為trie樹問題。
將每個數按二進位制位從高到低儲存到trie樹中,然後再遍歷每個數i,檢索出一條盡量每乙個二進位制位都與i相反的路徑。
最長異或值路徑
上個題目最大異或對的應用。我們發現,樹中一條路徑上的異或值等於這條路徑的 起始點到根節點的異或值 異或上 終點到根節點的異或值。
用dfs求出每個節點到根節點的異或值,之後將它們壓縮到trie樹中。之後就可以轉換成最大異或對問題。
資料結構之Trie樹
1 什麼是trie樹 trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表高。trie的核心思想是空間換時間。利用字串的公...
資料結構 TRIE樹
分類 data structure 2009 04 19 22 31 5425人閱讀收藏 舉報trie樹 trie樹就是字元樹,其核心思想就是空間換時間。舉個簡單的例子。給你100000個長度不超過10的單詞。對於每乙個單詞,我們要判斷他出沒出現過,如果出現了,第一次出現第幾個位置。這題當然可以用h...
資料結構 TRIE樹
trie樹 trie樹就是字元樹,其核心思想就是空間換時間。舉個簡單的例子。給你100000個長度不超過10的單詞。對於每乙個單詞,我們要判斷他出沒出現過,如果出現了,第一次出現第幾個位置。這題當然可以用hash來,但是我要介紹的是trie樹。在某些方面它的用途更大。比如說對於某乙個單詞,我要詢問它...