trie(前缀树)是一棵树,其中每条边代表一个字符,从根出发的每条路径都拼写出一个前缀。共享前缀的单词共享同一条路径,使得前缀查询极其迅速。
结构
text
Insert "cat", "car", "dog":
root
/ \
c d
| |
a o
/ \ |
t* r* g* (* marks end-of-word)
Code
python
:
():
.children = {}
.is_end =
:
():
.root = TrieNode()
():
node = .root
ch word:
node = node.children.setdefault(ch, TrieNode())
node.is_end =
():
node = .root
ch prefix:
ch node.children:
node = node.children[ch]
