Trie树模板

Trie树,又称单词查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。


Trie树 c++模板

#include
using namespace std;
#define MAX 26


class node
{
	node *next[MAX];     //每个结点的分结点A~Z 26种
	bool finish;         //单词是否插入结束
	int cnt;             //统计相同前缀出现次数
                node(){ 
	    for(int i=0;inext[num]==NULL)
			temp->next[num]=new node;
 		temp->next[num]->cnt++;
		temp=temp->next[num];
		str++;
	    }
	    temp->finish=1;
	}

	bool search(const char*str)     //查找单词是否存在
	{
	     	Node *temp=root;
		while(*str!='\0')
		{
		    int num=*str-'a';
		    if(temp->next[num]==NULL)
 				return 0;
		    temp=temp->next[num];
			str++;
		}
		return temp->finish;	    	
	}

	int count(const char* str)     //判断相同前缀出现次数。
	{
		Node *temp=root;
		while(*str!='\0')
		{
			int num=*str-'a';
			if(temp->next[num]==NULL)
			{
				return 0;
			}
			else
			{
				temp=temp->next[num];
				str++;
			}
		}
		return temp->cnt;
	}
};


int main()
{
	trie t;
	t.insert("a");
	t.insert("ab");
	t.insert("abc");
	t.insert("bcde");
	cout<


你可能感兴趣的:(Trie,Trie数,模板)