#include <iostream>
#include <cstdio>
#include <cstring>
#include <sstream>
using namespace std; #define Max 26 const int maxn=; typedef struct TrieNode{
int nCount;//根据需要改变
struct TrieNode *next[Max];
}TrieNode; TrieNode *root=NULL; int allcop=,ans,flag; TrieNode memory[maxn]; TrieNode *CreatTrieNode(){
TrieNode *temp=&memory[allcop++];
temp->nCount=;
for(int i=;i<Max;i++) temp->next[i]=NULL;
return temp;
} void InsertTrie(TrieNode **pRoot,char *str){
TrieNode *temp=*pRoot;
int i=,k;
while(str[i]){
k=str[i]-'a';
if(temp->next[k]){
//temp->next[k]->nCount++;
} else temp->next[k]=CreatTrieNode();
temp=temp->next[k];
i++;
}
temp->nCount++;
} int SearchTrie(TrieNode *root,char *str){
if(root==NULL) return ;
TrieNode *temp=root;
int i=,k;
while(str[i]){
k=str[i]-'a';
if(temp->next[k]){
temp=temp->next[k];
} else return ;
i++;
}
return temp->nCount;
} void Traverse(TrieNode *root){
for(int i=;i<Max;i++){
if(root->next[i]){
if(root->next[i]->nCount>) ans++;
Traverse(root->next[i]);
}
}
} char str[]; void init(){
ans=;
flag=;
allcop=;
memset(memory,,sizeof(memory));
root=CreatTrieNode();
} int main()
{
while(){
init();
string line;
getline(cin,line);
stringstream ss(line);
while(ss>>str) {
if(str[]=='#') {
flag=;
break;
}
InsertTrie(&root,str);
}
if(flag) break;
Traverse(root);
printf("%d\n",ans);
}
return ;
}

输入方式值得学习

hdu2027 trie树 字典树模板的更多相关文章

  1. 剑指Offer——Trie树(字典树)

    剑指Offer--Trie树(字典树) Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种的单词.对于每一个单词,我们要判断他出没出现过,如果出现了,求第一次出现在第几个位 ...

  2. AC自动机——1 Trie树(字典树)介绍

    AC自动机——1 Trie树(字典树)介绍 2013年10月15日 23:56:45 阅读数:2375 之前,我们介绍了Kmp算法,其实,他就是一种单模式匹配.当要检查一篇文章中是否有某些敏感词,这其 ...

  3. Trie(字典树)

    没时间整理了,老吕又讲课了@ @ 概念 Trie即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种,典型应用是统计和排序大量的字符串(不限于字符串) Trie字典树主要用于存储字符串, ...

  4. 9-11-Trie树/字典树/前缀树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版

    课本源码部分 第9章  查找 - Trie树/字典树/前缀树(键树) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版>(严蔚 ...

  5. Trie:字典树

    简介 \(Trie\),又称字典树或前缀树,是一种有序树状的数据结构,用于保存关联数组,其中的键值通常是字符串. 作用 把许多字符串做成一个字符串集合,并可以对其进行快速查找(本文以求多少个单词是一个 ...

  6. cogs 293. [NOI 2000] 单词查找树 Trie树字典树

    293. [NOI 2000] 单词查找树 ★★☆   输入文件:trie.in   输出文件:trie.out   简单对比时间限制:1 s   内存限制:128 MB 在进行文法分析的时候,通常需 ...

  7. [LintCode] Implement Trie 实现字典树

    Implement a trie with insert, search, and startsWith methods. Have you met this question in a real i ...

  8. Trie树|字典树(字符串排序)

    有时,我们会碰到对字符串的排序,若采用一些经典的排序算法,则时间复杂度一般为O(n*lgn),但若采用Trie树,则时间复杂度仅为O(n). Trie树又名字典树,从字面意思即可理解,这种树的结构像英 ...

  9. Trie - leetcode [字典树/前缀树]

    208. Implement Trie (Prefix Tree) 字母的字典树每个节点要定义一个大小为26的子节点指针数组,然后用一个标志符用来记录到当前位置为止是否为一个词,初始化的时候讲26个子 ...

  10. Trie树/字典树题目(2017今日头条笔试题:异或)

    /* 本程序说明: [编程题] 异或 时间限制:1秒 空间限制:32768K 给定整数m以及n个数字A1,A2,..An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大 ...

随机推荐

  1. IDEAL葵花宝典:java代码开发规范插件:GsonFormat插件将JSONObject格式的String 解析成实体

    前言: GsonFormat插件主要用于使用Gson库将JSONObject格式的String 解析成实体,该插件可以加快开发进度,使用非常方便,效率高. 这个教程主要是学习IntelliJ IDEA ...

  2. hdu-5862 Counting Intersections(线段树+扫描线)

    题目链接: Counting Intersections Time Limit: 12000/6000 MS (Java/Others)     Memory Limit: 65536/65536 K ...

  3. codeforces 660D D. Number of Parallelograms(计算几何)

    题目链接: D. Number of Parallelograms time limit per test 4 seconds memory limit per test 256 megabytes ...

  4. Python 连接Oracle数据库

    连接:python操作oracle数据库  python——连接Oracle数据库 python模块:cx_Oracle, DBUtil 大概步骤: 1. 下载模块 cx_Oracle (注意版本) ...

  5. Linux网络编程 gethostbyaddr()

    C语言函数 概述: 返回对应于给定地址的主机信息. #include <winsock.h> struct hostent FAR *PASCAL FAR gethostbyaddr(co ...

  6. “libgomp.so.1: version `GOMP_4.0' not found” || “libstdc++.so.6: version `CXXABI_1.3.8' not found”错误

    类似问题还有 'ImportError ../lib/libstdc++.so.6: version `CXXABI_1.3.7' not found (required by xxx)'.      ...

  7. js动态加载activeX控件在IE11与低版本IE中的差异

    由于IE11更加遵循W3C规范,所以IE11与低版本IE在加载activeX时有差别. 1.IE11中动态加载activeX的顺序 var objectTag = document.createEle ...

  8. NOI.AC 32 Sort——分治

    题目:http://noi.ac/problem/32 从全是0和1的情况入手,可以像线段树一样分治下去,回到本层的时候就是左半部的右边是1,右半部的左边是0,把这两部分换一下就行.代价和时间一样是n ...

  9. wpf如何获取control template里的元素

    wpf中的控件模板里的元素有自己独立的命名域. 因此不能通过FindName来根据x:Name来查找子节点. 自己写了一个方法, 通过可视树遍历子节点,然后匹配名字. 如下: private stat ...

  10. Day04:函数参数、对象、嵌套、闭包函数和装饰器

    上节课复习:    1.什么是函数        函数就是具备某一功能的工具    2.为何用函数        1.程序的组织结构和可读性        2.减少代码冗余        3.扩展性强 ...