資料結構之 簡單實現字典樹

2021-10-12 04:58:35 字數 1393 閱讀 2210

字典樹:

又稱單詞查詢樹,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.從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字...