1、Trie树的数据结构
Trie树,即字典树,又称单词查找数或者键数。是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不限于字符串),所有经常被搜索引擎系统用于文本词频统计。
优点:最大限度地减少无谓的字符串比较,查询效率高于哈希表。
2、Trie数的核心思想
Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。
3、Trie数的基本结构
1)根节点不包含字符,根节点外每一个节点都只包含一个字符。
2)从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。
3)每个节点的所有子节点包含的字符都不相同。
代码模板:
static final int alphabet_SIZE = 256;//全部的assic码
static class TrieNode{
TrieNode[] children = new TrieNode[ALPHABET_SIZE];//记录所有的子节点
boolean isEndOfWOrd = false;//单词是否终结
TrieNode(){
isEndOfWord = false;//初始化终结为false
for(int i = 0; i < ALPHABET_SIZE;i++){
children[i] = null;
}
}
实战题⽬目
1. https://leetcode.com/problems/implement-trie-prefixtree/#/description
2. https://leetcode.com/problems/word-search-ii/