字典樹學習筆記

2022-06-18 02:36:13 字數 716 閱讀 3942

參考部落格

字典樹是一種用於統計字串、文字詞頻統計的入門級的資料結構。

基本性質

(1)根節點不包括字元,除根節點外每乙個節點都只包含乙個字元。

(2)用邊表示字母

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

(4)每個節點的所有子節點包含的字元都不相同,每個節點最多有26個子節點(在單詞只包含小寫字母的情況下)

(5)有相同字首的單詞公用字首節點。

(6)整棵樹的根節點是空的,便於插入和查詢。

(7)每個單詞結束時用乙個特殊字元表示,那麼從根節點到任意乙個特殊字元,所經過的邊的所有字母表示乙個單詞。

基本操作

插入:從左到右掃瞄這個單詞,如果字母在相應的根節點下沒有出現過,就插入這個字母。

我們設trie(i)(j)=k,表示編號為i的節點的第j個孩子為編號為k的節點。

可以寫出插入的**:

void insert (string

s) }

查詢:可以查詢某個字首,也可以查詢整個單詞。

bool find (string

s)

return

true

;}

還可以用trie樹給字串排序,將每個字串依次插入到trie樹中,做先序遍歷,可以得到字串從小到大的順序,消耗空間較大,但時間複雜度可以降至o(n)。

學習筆記 字典樹

字典樹又稱單詞查詢樹,其利用了字串的公共字首來減少查詢時間,查詢效率比較高。然後如下圖建樹 有點醜,莫介意 每個父親節點都有26個 假設只需要查詢a z 兒子,從a z,樹建好了。然後我們定義乙個陣列tree i j 陣列的i為第i個節點,j為第j個兒子.第幾個節點怎麼看呢?比如上圖我們要插入字串a...

學習筆記 關於字典樹

字典樹是一種特殊的樹,以下函式是特別儲存的留作以後備用的函式。也是以結點的形式來構建樹,結構體如下 typedef struct node tree,tr 建立字典樹的函式,返回值是樹根的位址,由此字串時鍵鼠並標記為1。tr build tr t,char s,int p t pi for i 0 ...

學習筆記 字典樹(Trie)

日期 2020 08 25 目錄三 碎碎念 字典樹,英文名 trie。顧名思義,就是乙個像字典一樣的樹。可能有些不太形象,那我們舉個栗子叭 比如有乙個 duliu dalao daunting 令人望而生畏的 zhltao 那麼我們可以這麼存 仔細看看的話,其實挺像查字典的 我翻開一本如上的字典,翻...