Trie 單詞查詢樹

2021-08-24 18:59:06 字數 1897 閱讀 6488

l

簡介

trie

,又稱單詞查詢樹、字首樹,是一種雜湊樹的變種。應用於字串的統計與排序,經常被搜尋引擎系統用於文字詞頻統計。

含有單詞「tea

」「tree

」「a」「zsu

」的一棵trie

l性質n

根節點不包含字元,除根節點外的每乙個節點都只包含乙個字元。n

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

每個節點的所有子節點包含的字元都不相同。l

優點n

查詢快。對於長度為m

的鍵值,最壞情況下只需花費o(m)

的時間;而bst

最壞情況下需要o(m log n)

的時間。n

當儲存大量字串時,trie

耗費的空間較少。因為鍵值並非顯式儲存的,而是與其他鍵值共享子串。n

trie

適用於「最長字首匹配」。l

操作n

初始化或清空

遍歷trie

,刪除所有節點,只保留根節點。n

插入字串

1.

設定當前節點為根節點,設定當前字元為插入字串中的首個字元;

2.

在當前節點的子節點上搜尋當前字元,若存在,則將當前節點設為值為當前字元的子節點;否則新建乙個值為當前字元的子節點,並將當前結點設定為新建立的節點。.

3.

將當前字元設定為串中的下個字元,若當前字元為0,則結束;否則轉2.

n

查詢字串

搜尋過程與插入操作類似,當字元找不到匹配時返回假;若全部字元都存在匹配,判斷最終停留的節點是否為樹葉,若是,則返回真,否則返回假。

n

刪除字串

首先查詢該字串,邊查詢邊將經過的節點壓棧,若找不到,則返回假;否則依次判斷棧頂節點是否為樹葉,若是則刪除該節點,否則返回真。

l實現

對於字元表大小為s的字串集,需建立乙個s叉樹來代表這些字串的集合。

Trie 單詞查詢樹

l 簡介 trie 又稱單詞查詢樹 字首樹,是一種雜湊樹的變種。應用於字串的統計與排序,經常被搜尋引擎系統用於文字詞頻統計。含有單詞 tea tree a zsu 的一棵trie l性質 n根節點不包含字元,除根節點外的每乙個節點都只包含乙個字元。n從根節點到某一節點,路徑上經過的字元連線起來,為該...

Trie樹(單詞查詢樹)

前言 tire樹,又稱之為字典樹或者單詞查詢樹。是一種樹形結構,是雜湊樹的變種。典型應用是用於統計 排序或儲存大量的字串 不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻的統計。因為相同的字串字首會共享同一條分支,所以優點是可以利用不同字串的相同字首來減少無謂的字串比較,查詢效率比hash表 has...

C語言 單詞查詢樹 Trie樹

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