Trie树学习(复习)笔记

(Trie)树一般用于词频统计或者前缀匹配,当然还有一些高级操作。

一棵空(Trie)仅包含一个根节点。

一般是设(trie[pos][val]),表示当前指针(pos)(val)指针。(一定注意(val)是值,而不是枚举的下标。)

插入时,枚举(c)字符,若指针(pos)(val)指针指向一个已经存在的节点(p0),则令(pos=p0)。若其指向空,则新建一个节点(p0),令(pos)(val)指向(Q),然后令(pos=p0)。注意到最开始(pos=1),意思是(pos)指向空的根节点(1)

时间复杂度:一般的(Trie)树插入是(O(|S|))的,构造是(O(sum{|S|}))的。

空间复杂度:一般的(Trie)树空间复杂度是比较大的,(pos)维要开到(sum{|S|})(因为可能没有公共前缀),(val)维要开到值域。

目前主要学的(Trie)树的用途就是字符串的处理,以及维护最大异或和等。

原文地址:https://www.cnblogs.com/andysj/p/13861286.html