Trie字典树 静态内存
静态字典树
看了好久的字典树,挺简单的一个结构,愣是看了这么久才写出来。。。
专心一点就不会这样了。。。。
接下来就去刷刷字典树的题吧。。。。。。。
下面是字典树。。。。
定义节点
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字典树 静态内存的更多相关文章
- Trie字典树 动态内存
Trie字典树 #include "stdio.h" #include "iostream" #include "malloc.h" #in ...
- 算法导论:Trie字典树
1. 概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. Trie一词来自retrieve,发音为/tr ...
- 萌新笔记——C++里创建 Trie字典树(中文词典)(一)(插入、遍历)
萌新做词典第一篇,做得不好,还请指正,谢谢大佬! 写了一个词典,用到了Trie字典树. 写这个词典的目的,一个是为了压缩一些数据,另一个是为了尝试搜索提示,就像在谷歌搜索的时候,打出某个关键字,会提示 ...
- 标准Trie字典树学习二:Java实现方式之一
特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! 系列文章: 1. 标准Trie字典树学习一:原理解析 2.标准T ...
- 817E. Choosing The Commander trie字典树
LINK 题意:现有3种操作 加入一个值,删除一个值,询问pi^x<k的个数 思路:很像以前lightoj上写过的01异或的字典树,用字典树维护数求异或值即可 /** @Date : 2017- ...
- C++里创建 Trie字典树(中文词典)(一)(插入、遍历)
萌新做词典第一篇,做得不好,还请指正,谢谢大佬! 写了一个词典,用到了Trie字典树. 写这个词典的目的,一个是为了压缩一些数据,另一个是为了尝试搜索提示,就像在谷歌搜索的时候,打出某个关键字,会提示 ...
- 数据结构 -- Trie字典树
简介 字典树:又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种. 优点:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高. 性质: 1. 根节 ...
- 踹树(Trie 字典树)
Trie 字典树 ~~ 比 KMP 简单多了,无脑子选手学不会KMP,不会结论题~~ 自己懒得造图了OI WIKI 真棒 字典树大概长这么个亚子 呕吼真棒 就是将读进去的字符串根据当前的字符是什么和所 ...
- trie字典树详解及应用
原文链接 http://www.cnblogs.com/freewater/archive/2012/09/11/2680480.html Trie树详解及其应用 一.知识简介 ...
随机推荐
- C语言文件操作fclose在NDK引起的BUG
今天在NDK中写了一个简单的写入文件操作: FILE *fp = fopen("/sdcard/test.txt","w"); if(fp == NULL) { ...
- loj 1030概率dp
题目链接:http://lightoj.com/volume_showproblem.php?problem=1030 思路:一直以来对这种概率题都挺感冒的=.=......还是说一下思路吧,dp[i ...
- DIV伸缩盒子box
<div class="div1"> <div class="box"> <div>A</div> <di ...
- SoapUI之webservice接口测试(一)
1.新建soap project 添加后出现接口内容 2.为了方便后续的测试,以防某些参数删除错了,这边需要新建测试集 3.点开新建的测试集可以发现,里面的内容跟原始测试集内容是一样的 然后就可以在这 ...
- WPF VlC 实现视频的播放(1)
WPF 使用VLC实现视频的播放:网上开源代码我复制了一份: https://github.com/someonehan/Vlc.DotNet 1. 准备阶段 (I) libvlc.dll 和 l ...
- sql in(1,2,3)参数化查询,错误在将 varchar 值 '1,2,3,4' 转换成数据类型 int 时失败
解决办法 string userIds = "1,2,3,4";using (SqlConnection conn = new SqlConnection(connectionSt ...
- maven工程下 读取resource下配置文件
http://blog.csdn.net/xu511739113/article/details/52440982
- 后缀数组 POJ 2217 Secretary
题目链接 题意:求两个字符串的最长公共子串 分析:做法是构造新的串是两个串连接而成,中间用没有出现的字符隔开(因为这样才能保证S的后缀的公共前缀不会跨出一个原有串的范围),即newS = S + '$ ...
- Hive内部表外部表转化分析(装)
link:http://anyoneking.com/archives/127hive表分为内部表和外部表.外部表在删除的时候并不会删除到hdfs中的文件,比较安全,所以对于重要的需要进行分析的日志建 ...
- nginx二级域名配置到文件夹
user root; worker_processes ; events { worker_connections ; } http { include mime.types; default_typ ...