Trie树,又称为字典树、单词查找树或键树,常用于统计和排序大量的字符串(但不仅限于字符串)。优点是最大限度地减少无谓的字符串的比较,可以用于字符串的最长匹配查找。
Trie树的核心思想是空间换时间,利用字符串的公共前缀来降低查询时间的开销以提高效率。
3个基本性质:
- 根节点不包含字符,除根节点外每个节点都只包含一个字符。
- 从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。
- 每个节点的所有子节点包含的字符都不相同。
标准Trie树实现
|
|
三叉Trie树
三叉Trie树有三个指针:一个指向左边的树,一个指向右边的树,还有一个向下指向单词的下一个数据单元。
单词的读入顺序对于创建平衡的三叉Trie树很重要,一般将输入排好序,选择排序后数据单元集合的中间值作为开始节点。
|
|