面試 資料結構 trie樹

2021-10-12 16:47:58 字數 1469 閱讀 6638

一、定義及使用場景

又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是:利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高

特點:

1、根節點不包含字元,除根節點意外每個節點只包含乙個字元。

2、從根節點到某乙個節點,路徑上經過的字元連線起來,為該節點對應的字串。

3、每個節點的所有子節點包含的字串不相同。

4、每個節點最多有26個孩子節點(儲存26個字母)

變種:bit-wise trie,用bit位儲存26個字母

#include #include #include typedef struct tnodetree;

tree *createtree()

root->iscomplete = 0;

}return root;

}int searchtree(char *str, tree *root)

if (found->iscomplete == 1)

return 1;

else

return 0;

}int insert(char *str, tree *root)

p = p->child[value];

}p->iscomplete = 1;

return 1;

}int main()

(1) 字串檢索事先將已知的一些字串(字典)的有關資訊儲存到trie樹里,查詢另外一些未知字串是否出現過或者出現頻率。

(2)文字**、自動完成,see also,拼寫檢查

(3)詞頻統計

(4)排序

trie樹是一棵多叉樹,只要先序遍歷整棵樹,輸出相應的字串便是按字典序排序的結果。

(5)字串最長公共字首

trie樹利用多個字串的公共字首來節省儲存空間,當我們把大量字串儲存到一棵trie樹上時,我們可以快速得到某些字串的公共字首。

(6)字串搜尋的字首匹配

trie樹常用於搜尋提示。如當輸入乙個**,可以自動搜尋出可能的選擇。當沒有完全匹配的搜尋結果,可以返回字首最相似的可能。

(7)作為其他資料結構和演算法的輔助結構

如字尾樹,ac自動機等

字尾樹可以用於全文搜尋

參考:參考:

參考:

資料結構 TRIE樹

分類 data structure 2009 04 19 22 31 5425人閱讀收藏 舉報trie樹 trie樹就是字元樹,其核心思想就是空間換時間。舉個簡單的例子。給你100000個長度不超過10的單詞。對於每乙個單詞,我們要判斷他出沒出現過,如果出現了,第一次出現第幾個位置。這題當然可以用h...

資料結構 TRIE樹

trie樹 trie樹就是字元樹,其核心思想就是空間換時間。舉個簡單的例子。給你100000個長度不超過10的單詞。對於每乙個單詞,我們要判斷他出沒出現過,如果出現了,第一次出現第幾個位置。這題當然可以用hash來,但是我要介紹的是trie樹。在某些方面它的用途更大。比如說對於某乙個單詞,我要詢問它...

資料結構之Trie樹

1 什麼是trie樹 trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表高。trie的核心思想是空間換時間。利用字串的公...