算法介绍
第一眼看到Trie树算法,首先明白的就是他一定是用树形结构实现的算法。后来实现完整个算法才知道其实他也是压缩树,类似于哈弗曼编码和CF-Tree,因为树中保留了公共的前缀,减少了不必要的重复存储空间。所以查询效率会高很多,如果你明白哈弗曼编码的实现过程,这个自然也是一样的道理。那Trie树与Huffman编码树有什么区别呢,Huffman是0或1的编码,而Trie则是文本查找树,节点上可以是一个字母字符,也可以是汉字等等,大体就是这个意思。好,下面说说算法的原理。
算法原理
1、首先获取所有的文本数据,划分成逐条逐条的形式。
2、读入每行数据,对照当前比较字符值与当前节点的子节点比较,寻找到与之匹配的节点
3、如果找到对应的子节点,将子节点作为当前节点,并移除数据的此字符,继续步骤2。
4、如果未找到对应子节点,新建节点插入当前的节点中,并将新节点作为当前节点,继续步骤2。
5、操作的终止条件为数据中的字符已经全部移除比较完毕。
算法实现
输入的字符数据Input.txt:
abc
bcd
bca
bcc
bbd
abca
树节点类TreeNode.java:
package Trie;
im