一棵空字典樹僅包含根節點,所以該點字元指標均指向空。
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。如果只是 單純的按照以前的字元陣列儲存的思...