Trie树:统计词频、排序、查找

Trie树利用字符串的公共前缀降低了查询时间的开销,提高了查询的效率。

字典树的插入,删除和查找都非常简单,用一个一重循环即可。

1. 从根节点开始一次搜索

2. 取得要查找关键词的第一个字母,并根据该字母选择对应的子树并转到该子树继续进行检索

3. 在相应的子树上,取得要查找关键词的第二个字母,并进一步选择对应的子树进行检索

4. 迭代过程...

5. 在某个节点处,关键词的所有字母已被取出,则读取附在该节点上的信息,即完成查找

package algrithm;

public class dictionaryTree2 {

	private int SIZE=26;
	private TreeNode root;//字典的根
	
	public dictionaryTree2() {
		// TODO Auto-generated constructor stub
		root=new TreeNode();
	}
	
	private class TreeNode
	{
		 private int num; //词频统计
		 private TreeNode []son;//每一层都是由26字母开头的,即所有的节点
		 private boolean isWord;//是不是最后一个节点
		 private char val;//节点的值
		
		TreeNode()
		{
			num=1;
			son=new TreeNode[SIZE];
			isWord=false;
		}
	}
	
	public void insert(String str)
	{
		if(str==null||str.length()==0)
			return ;
		TreeNode node=root;
		char[] letters=str.toCharArray();
		for(int i=0,len=str.length();i

输出结果:

true
2

你可能感兴趣的:(java,java)