程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDU 1251 統計難題-字典樹

HDU 1251 統計難題-字典樹

編輯:C++入門知識

HDU 1251 統計難題-字典樹


 

基礎字典樹:

 

#include
#include

char s[15];
struct node
{
	int cnt;
	node *next[26];
	void init() //初始化
	{
		cnt=0;
		for(int i=0;i<26;i++)
		{
			next[i]=NULL;
		}	
	}	
} ;

void insert(node *root,char *s)
{
	node *p=root;
	for(int i=0;s[i];i++)
	{
		int t=s[i]-'a';
		if(p->next[t]==NULL)
		{
			p->next[t]=new node;
			p=p->next[t];
			p->init() ;
		}
		else
			p=p->next[t];
		p->cnt++;
	}
}
int find(node *root, char *s)
{
	node *p=root;
	for(int i=0;s[i];i++)
	{
		int t=s[i]-'a';
		p=p->next[t];
		if(!p) return 0;
	}
	return p->cnt;
}

int main()
{
	node *root=new node();
	root->init() ;
	
	while(gets(s)&&strlen(s))//輸入控制!!!
	{
		insert(root,s);
	}
	while(gets(s))
	{
		printf(%d
,find(root,s));
	}
	return 0;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved