字典樹:
又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是:利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。
字典樹的基本功能是用來查詢某個單詞(字首)在所有單詞**現次數的一種資料結構,它的插入和查詢複雜度都為o(len),len為單詞(字首)長度,但是它的空間複雜度卻非常高,如果字符集是26個字母,那每個節點的度就有26個,典型的以空間換時間結構。
借用網上的圖:不知道哪位博主的,先謝謝了。忘記位址了。
**示例:
#include
using namespace std;
int trie[
100][26
]=;int bflag[
1000]=
;int ncount =1;
void
inserttotrie
(char
*str)
//已經存在
nroot = trie[nroot]
[id];}
bflag[ncount]=1
;}//查詢某個字串是否存在
bool triefind
(char
*str)
//已經存在
nroot = trie[nroot]
[id];}
return bflag[nroot+1]
;}void
main()
else
ret =
triefind()
;if(ret)
else
ret =
triefind
("cash");
if(ret)
else
ret =
triefind
("cat");
if(ret)
else
ret =
triefind
("asx");
if(ret)
else
ret =
triefind
("ok");
if(ret)
else
system
("pause");
}
結果:
重要的是理解思想,插入的思想。
資料結構之字典樹
trie又被稱為字首樹 字典樹,所以當然是一棵樹。上面這棵trie樹包含的字串集合是。每個節點的編號是我們為了描述方便加上去的。樹中的每一條邊上都標識有乙個字元。這些字元可以是任意乙個字符集中的字元。比如對於都是小寫字母的字串,字符集就是 a z 對於都是數字的字串,字符集就是 0 9 對於二進位制...
Python資料結構與演算法之字典樹實現方法示例
python資料結構與演算法之字典樹實現方法示例 有的時候,我們本來寫得好好的爬蟲 之前還執行得ok,一下子突然報錯了。報錯資訊如下 這是因為你的物件 設定了反爬蟲程式,如果用現有的爬蟲 會被拒絕。之前正常的爬蟲 如下 from urllib.request import urlopen html ...
資料結構 Trie字典樹
簡介 字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。優點 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高。性質 1.根節點不包含字元,除根節點外每乙個節點都只包含乙個字元 2.從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字...