字典树模板
来源:互联网 发布:html select js 选中 编辑:程序博客网 时间:2024/06/06 12:13
#include<stdio.h>#include<iostream>#include<string>#include<cstring>using namespace std;//字符数#define MAX 26//内存最大限制#define MEMORYLIMIT 60000*1024const char CH='a';struct Node{ int nCount; Node * Next[MAX];};//先分配好内存,malloc比较浪费时间Node Memory[MEMORYLIMIT/sizeof(Node)];struct Trie{ Node * root; int allocp;//当前在分配内存中的位置 Trie(){ init(); } void init(){ allocp=0; memset(Memory,0,sizeof(Memory)); root=getNode(); } //从分配内存中获得一个节点 Node * getNode() { Node * tmp=&Memory[allocp++]; tmp->nCount=1; for(int i=0;i<MAX;i++) tmp->Next[i]=NULL; return tmp; } void insert(char *str) { Node *tmp=root; for(int i=0;str[i];i++) { int id=str[i]-CH; if(tmp->Next[id]) tmp->Next[id]->nCount++; else tmp->Next[id]=getNode(); tmp=tmp->Next[id]; } } int query(char *str) { if(root==NULL) return 0; Node *tmp=root; for(int i=0;str[i];i++) { int id=str[i]-CH; if(tmp->Next[id]) tmp=tmp->Next[id]; else return 0; } return tmp->nCount; }};int main(){ int n,m; char str[100]; Trie trie; while(gets(str),*str) trie.insert(str); while(gets(str)) printf("%d\n",trie.query(str)); return 0;}
0 0
- 字典树 模板
- 字典树【模板】
- 字典树模板
- 字典树模板
- 字典树模板
- 经典字典树模板
- hdu1247 字典树模板
- 字典树模板
- 字典树模板
- 字典树模板
- 字典树模板
- 字典树 模板
- 1251 字典树 模板
- 数据结构 字典树模板
- 字典树模板
- 字典树(trie)模板
- 字典树 模板+讲解
- 字典树模板
- Could not create the view: An unexpected exception was thrown.问题解决
- java.net.SocketException: select failed异常的解决方法
- 适配器模式
- 一种同时缩放多个wpf窗体的方法和装置
- 程序员面试100题之二:跳台阶问题(变态跳台阶)
- 字典树模板
- 大二训练第二周 Count the Colors 线段区间更新
- html5 图片热点area,map的用法
- Objective-c:集合类型
- iOS中使用Block反响传值的用法
- 为什么1个字节(Byte)等8位(Bit)?
- Python之旅(二)
- SQL case用法
- 事务隔离级别