字典树模板
来源:互联网 发布:usb网络共享打不开 编辑:程序博客网 时间:2024/05/23 19:41
#include<bits/stdc++.h>using namespace std;#define LL long longconst int sigma_size=2;struct TireNode{ int pass; int last; TireNode *son[29]; TireNode(){ pass=0; last=0; for(int i=0;i<26;i++) son[i]=NULL; //memset(son,NULL,sizeof(son)); };};TireNode *root=new TireNode();int getnum(char a){ return a-'a'+1;}void Tire_insert(char s[]){ int len=strlen(s); TireNode *in=root; for(int i=0;i<len;i++){ int c=getnum(s[i]); if(in->son[c]==NULL){ TireNode *newnode=new TireNode(); in->son[c]=newnode; } in->pass++; in=in->son[c]; } in->last++;}int Tire_query(char s[]){ int len=strlen(s); TireNode *in=root; for(int i=0;i<len;i++){ int c=getnum(s[i]); if(in->son[c]==NULL) return 0; in=in->son[c]; } return in->pass; //return in->last;}void Tire_remove(char s[]){ int len=strlen(s); TireNode *in=root; for(int i=0;i<len;i++){ int c=getnum(s[i]); if(in->son[c]!=NULL){ in->pass--; if(i==len-1) in->last--; in=in->son[c]; } else return;//节点不存在,直接返回 }}int main(){ Tire_insert("sssa"); Tire_insert("sssa"); Tire_insert("ssda"); Tire_insert("sdssa"); Tire_insert("ssda"); cout<<Tire_query("ss")<<endl; Tire_remove("ssda"); cout<<Tire_query("ss")<<endl; return 0;}
0 0
- 字典树 模板
- 字典树【模板】
- 字典树模板
- 字典树模板
- 字典树模板
- 经典字典树模板
- hdu1247 字典树模板
- 字典树模板
- 字典树模板
- 字典树模板
- 字典树模板
- 字典树 模板
- 1251 字典树 模板
- 数据结构 字典树模板
- 字典树模板
- 字典树(trie)模板
- 字典树 模板+讲解
- 字典树模板
- PHP5.3废弃函数 替代记
- Android 快速简单实现夜间模式
- 12306网站的体验太棒了!和去售票窗口一样,让你体验排队的乐趣
- sqlserver数据库迁移至oracle数据库
- 腾讯财付通 看看你们有多无耻
- 字典树模板
- 部级网站的bug: 12306 几亿的东西如此狼狈
- C++的NULL和nullptr
- 25岁毕业,拿一万块钱月薪
- 火狐浏览器下burpsuite代理https页面
- 小旭改的分页代码
- mysql in 自定义排序的问题
- 二级C语言复习(1)
- Qt之布局管理——停靠窗口