字典樹模板

2021-10-23 09:28:52 字數 802 閱讀 8094

一棵空字典樹僅包含根節點,所以該點字元指標均指向空。

int trie[n][26

],tot=1;

//26個字母

char str[n]

;

當需要插入乙個字串s時,我們讓乙個指標p指向根節點。然後依次掃瞄s中的每個字元c:

1.若p的c字元指標指向乙個已經存在的節點q,讓p=q.

2.若p的c字元指標指向空,則新建節點q,讓p的c字元指標指向q,令p=q.

當s中的字元掃瞄完畢時,在當前節點p上標記他是乙個字串的結尾。

void

insert

(char

* str)

end[p]

=true

;//結尾標記

}

當需要檢索乙個字串s在字典樹中是否存在時,讓指標p起初指向根節點。然後依次掃瞄s中的每個字元c:

1.若p的c字元指標指向空,則說明s沒有被插入字典樹,結束檢索即可

2.若p的c字元指標指向乙個已經存在的節點q,讓p=q即可.(似曾相識)

int

search

(char

* str)

return end[p]

;}

一般情況下,需要插入和檢索的字串都由小寫字母組成,所以字典樹一般具有26個字元指標,分別為a到z。在字典樹中,字元資料都體現在樹的邊(指標)上,書的節點僅儲存一些額外資訊,例如單詞結尾標記等。字典樹的空間複雜度是o(nc),其中n是節點個數,c是字符集大小。

字典樹模板

字典樹,又稱單詞查詢樹,trie樹,是一種樹形結構,典型應用是用於統計,排序和儲存大量的字串,所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來節約儲存空間,最大限度的減少無謂的字串比較,查詢效率比雜湊表高。字典樹的應用 字串的快速檢索 雜湊最長公共字首 include usi...

字典樹模板

package template public class triemod trie root new trie for string s str if find root,asdf else public static void insert final trie root,string str ...

字典樹模板

字典樹 字典樹,又稱單詞查詢樹,trie樹,是一種樹形結構,雜湊表的乙個變種。用於統計,排序和儲存大量的字串 也可以儲存其 的 優點就是利用公共的字首來節約儲存空間。在這舉個簡單的例子 比如說我們想儲存3個單詞,nyist nyistacm nyisttc。如果只是 單純的按照以前的字元陣列儲存的思...