zoukankan      html  css  js  c++  java
  • 字典树 之 hdu 1251

    在结构体里增加一个计数的变量就好了。

    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    const int MAX = 26;
    
    struct Trie
    {
    	int sum;
    	Trie *next[MAX];
    	Trie() {
    		sum = 0;
    		memset(next, NULL, sizeof(next));
    	}
    };
    
    Trie *Root = new Trie;
    
    void CreTrie(char *str)
    {
    	int len = strlen(str);
    	Trie *p = Root;
    	for (int i = 0; i < len; i++) {
    		int pos = str[i] - 'a';
    		if (!p->next[pos]) {
    			p->next[pos] = new Trie;
    		}
    		p = p->next[pos];
    		p->sum++;
    	}
    }
    
    int FinTrie(char *str)
    {
    	int len = strlen(str);
    	Trie *p = Root;
    	for (int i = 0; i < len; i++) {
    		int pos = str[i] - 'a';
    		if (!(p->next[pos])) {
    			return 0;
    		}
    		p = p->next[pos];
    	}
    	return p->sum;
    }
    
    void DelTrie(Trie *T) {
    	for (int i = 0; i < MAX; i++) {
    		if (T->next[i]) {
    			DelTrie(T->next[i]);
    		}
    	}
    	delete[] T;
    }
    
    int main()
    {
    	freopen("input.txt", "r", stdin);
    	//freopen("output.txt", "w", stdout);
    
    	char str[10];
    	while (gets(str)) {
    		if (0 == strlen(str)) {
                break;
    		}
    		CreTrie(str);
    	}
    	while (~scanf("%s", str)) {
    		printf("%d
    ", FinTrie(str));
    	}
    	DelTrie(Root);
    	return 0;
    }


  • 相关阅读:
    第十六周个人作业
    小组作业
    第十五周个人作业
    本周个人总结
    产品计划会议
    本周个人总结
    排球计分程序
    JProfiler入门
    (转)MMOGS服务器架构设计
    (转)游戏服务器开发需要学习的技术
  • 原文地址:https://www.cnblogs.com/shijianming/p/4140843.html
Copyright © 2011-2022 走看看