码迷,mamicode.com
首页 > 其他好文 > 详细

HDU ACM 1251字典树(Trie)

时间:2015-04-21 09:46:41      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:c   c++   acm   算法      

简单的字典树题,首先简历字典树,在查找。


#include<iostream>
using namespace std;

struct Tri
{
	int v;
	Tri* child[26];
} root;

void Init()
{
	root.v=0;
	for(int i=0;i<26;i++)
	{
		root.child[i]=NULL;
	}
}

void CreateDic(char* str)
{
	Tri* p;
	int j;

	p=&root;
	while(*str!=NULL)
	{
		if(p->child[*str-'a']==NULL)
		{
			p->child[*str-'a']=(Tri*)new Tri;
			p->child[*str-'a']->v=1;
			for(j=0;j<26;j++)
				p->child[*str-'a']->child[j]=NULL;
		}
		else
			p->child[*str-'a']->v++;

		p=p->child[*str-'a'];
		str++;
	}
}

int Find(char* str)
{
	Tri* p=&root;

	while(*str!=NULL)
	{
		if(p->child[*str-'a']==NULL)
			return 0;
		p=p->child[*str-'a'];
		str++;
	}
	return p->v;
}

int main()
{
	char a[100];
	Init();

	while(gets(a) && a[0]!='\0')
	{
		CreateDic(a);
	}

	while(gets(a))
	{
		cout<<Find(a)<<endl;
	}
    return 0;
}


HDU ACM 1251字典树(Trie)

标签:c   c++   acm   算法      

原文地址:http://blog.csdn.net/a809146548/article/details/45156903

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!