静态字典树

看了好久的字典树,挺简单的一个结构,愣是看了这么久才写出来。。。

专心一点就不会这样了。。。。

接下来就去刷刷字典树的题吧。。。。。。。

下面是字典树。。。。

定义节点

typedef struct Trie{
char val;  //其实这东西没啥软用。。。注释掉也一样。。。没有变化
bool isword;
struct Trie *next[26];
}*Trie_pointer;

然后建树

这几天抽风了。。。

把memset写在函数外面去了。。。。

编译老半天过不去。。。。

日了。。。。。。。

代码:

 #include<bits/stdc++.h>
using namespace std;
#define mem(a) memset(a,0,sizeof(a))
#define long long ll; typedef struct Trie{
char val;
bool isword;
struct Trie *next[];
}*Trie_pointer; Trie trie[]; int tot; Trie_pointer CreateNode()
{
return &trie[tot++];
} void Insert(Trie_pointer root, char *s)
{
if(*s == '\0')
return;
char *p = s;
Trie_pointer tmp,t = root;
while(*p != '\0')
{
if(t->next[*p - 'a'] == NULL)
{
tmp = CreateNode();
tmp->val = *p;
t->next[*p - 'a'] = tmp;
}
t = t->next[*p - 'a'];
p++;
}
t->isword = ;
} bool Search(Trie_pointer root, char *s)
{
Trie_pointer tmp,t = root;
if(*s == '\0')
return false;
while(*s != '\0')
{
if(t->next[*s - 'a'] ==NULL)
return false;
t = t->next[*s -'a'];
s++;
}
if(t->isword == )
return false;
return true;
} int main()
{
Trie root;
char s[];
int i,n;
mem(trie,,sizeof(trie));
mem(&root,,sizeof(root));
cin>>n;
for(i=; i<=n; i++)
{
cin>>s;
Insert(&root,s);
}
while(cin>>s)
{
bool flag = Search(&root,s);
if(flag)
printf("YES\n");
else
printf("NO\n");
}
return ;
}

Trie字典树 静态内存的更多相关文章

  1. Trie字典树 动态内存

    Trie字典树 #include "stdio.h" #include "iostream" #include "malloc.h" #in ...

  2. 算法导论:Trie字典树

    1. 概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. Trie一词来自retrieve,发音为/tr ...

  3. 萌新笔记——C++里创建 Trie字典树(中文词典)(一)(插入、遍历)

    萌新做词典第一篇,做得不好,还请指正,谢谢大佬! 写了一个词典,用到了Trie字典树. 写这个词典的目的,一个是为了压缩一些数据,另一个是为了尝试搜索提示,就像在谷歌搜索的时候,打出某个关键字,会提示 ...

  4. 标准Trie字典树学习二:Java实现方式之一

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! 系列文章: 1. 标准Trie字典树学习一:原理解析 2.标准T ...

  5. 817E. Choosing The Commander trie字典树

    LINK 题意:现有3种操作 加入一个值,删除一个值,询问pi^x<k的个数 思路:很像以前lightoj上写过的01异或的字典树,用字典树维护数求异或值即可 /** @Date : 2017- ...

  6. C++里创建 Trie字典树(中文词典)(一)(插入、遍历)

    萌新做词典第一篇,做得不好,还请指正,谢谢大佬! 写了一个词典,用到了Trie字典树. 写这个词典的目的,一个是为了压缩一些数据,另一个是为了尝试搜索提示,就像在谷歌搜索的时候,打出某个关键字,会提示 ...

  7. 数据结构 -- Trie字典树

    简介 字典树:又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种. 优点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高. 性质:   1.  根节 ...

  8. 踹树(Trie 字典树)

    Trie 字典树 ~~ 比 KMP 简单多了,无脑子选手学不会KMP,不会结论题~~ 自己懒得造图了OI WIKI 真棒 字典树大概长这么个亚子 呕吼真棒 就是将读进去的字符串根据当前的字符是什么和所 ...

  9. trie字典树详解及应用

    原文链接    http://www.cnblogs.com/freewater/archive/2012/09/11/2680480.html Trie树详解及其应用   一.知识简介        ...

随机推荐

  1. Kmeans聚类算法原理与实现

    Kmeans聚类算法 1 Kmeans聚类算法的基本原理 K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一.K-means算法的基本思想是:以空间中k个点为中心进行聚类,对 ...

  2. Linggle: 英语写作学习搜索引擎

    Linggle 搜索引擎是一个可用于英语写作的语法.句子工具,可帮助学习者分析更准确的英文写作建议,能够根据词性来推测短句和句子,可精准的分享出完整英文句子如何撰写. Linggle 是台湾学术团队研 ...

  3. 在Salesforce中通过编写C#程序调用dataloadercliq的bat文件取触发调用data loader来批量处理数据

    通过这篇文章 http://www.cnblogs.com/mingmingruyuedlut/p/3413903.html 我们已经知道了Data Loader可以对Salesforce的Objec ...

  4. zoj 3471(状态压缩)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4257 dp[state]表示当前状态为state时的所能获得的最大值 ...

  5. ettercap局域网内DNS欺骗(隔壁的哥们轻一点 ...)

    转自:http://www.cnblogs.com/hkleak/p/5043063.html 笔记一:ettercap是什么? 我们在对WEB安全检测的时候都会用到Cain和netfuke这两款工具 ...

  6. 启动hbase时出现HMaster Aborted错误

    启动hbase时出现 java.lang.RuntimeException: HMaster Aborted at org.apache.hadoop.hbase.master.HMasterComm ...

  7. HDU 4496 D-City (并查集)

    题意:有n个城市,m条路,首先m条路都连上,接着输出m行,第i行代表删除前i行的得到的连通块个数 题解:正难则反,我们反向考虑使用并查集添边.首先每个点都没有相连,接着倒着来边添加边计算,当两个点父节 ...

  8. android常用对话框封装

    在android开发中,经常会用到对话框跟用户进行交互,方便用户可操作性:接下来就对常用对话框进行简单封装,避免在项目中出现冗余代码,加重后期项目的维护量:代码如有问题欢迎大家拍砖指正一起进步. 先贴 ...

  9. loadrunner以最后出现的字符串为分割符函数实现

    void strLastOccr(char inputStr[100], char* outputStr, char *delim){        char value[100],*temp, *t ...

  10. hdu2546 01背包

    http://acm.split.hdu.edu.cn/showproblem.php?pid=2546 01背包问题,首先拿出5元买最贵的东西,那接下来就是背包容量m-5,物品数量n-1 的01背包 ...