01字典树贪心查询+建立+删除(个人模版)
时间:2022-05-07
本文章向大家介绍01字典树贪心查询+建立+删除(个人模版),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
01字典树贪心查询+建立+删除:
1 #define maxn 2
2 typedef struct tree
3 {
4 tree *nex[maxn];
5 int v;
6 int val;
7 }tree;
8 tree root;
9 void init()
10 {
11 for(int i=0;i<maxn;i++)
12 {
13 root.nex[i]=NULL;
14 }
15 }
16 void creat(char *str,int va)
17 {
18 int len=strlen(str);
19 tree *p=&root,*q;
20 for(int i=0;i<len;i++)
21 {
22 int id=str[i]-'0';
23 if(p->nex[id]==NULL)
24 {
25 q=(tree *)malloc(sizeof(root));
26 q->v=1;
27 for(int j=0;j<2;j++)
28 {
29 q->nex[j]=NULL;
30 }
31 p->nex[id]=q;
32 }
33 else
34 {
35 p->nex[id]->v++;
36 }
37 p=p->nex[id];
38 if(i==len-1)
39 {
40 p->val=va;
41 }
42 }
43 }
44 void del(char *str)
45 {
46 int len=strlen(str);
47 tree *p=&root;
48 for(int i=0;i<len;i++)
49 {
50 int id=str[i]-'0';
51 p->nex[id]->v--;
52 tree *tmp=p->nex[id];
53 if(p->nex[id]->v==0)
54 {
55 p->nex[id]=NULL;
56 }
57 p=tmp;
58 }
59 return ;
60 }
61 void find(char *str,int query)
62 {
63 int len=strlen(str);
64 tree *p=&root;
65 for(int i=0;i<len;i++)
66 {
67 int id=str[i]-'0';
68 if(p->nex[1-id]!=0)
69 {
70 p=p->nex[1-id];
71 }
72 else
73 p=p->nex[id];
74 if(p==NULL)
75 return ;
76 if(i==len-1)printf("%dn",p->val^query);
77 }
78 }
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- AkShare-期权数据-商品期权
- AkShare-股票数据-破净股统计
- AkShare-股票数据-创新高和新低的股票数量
- AkShare-股票数据-A股个股市盈率、市净率和股息率
- AkShare-股票数据-A股市净率
- AkShare-股票数据-A股市盈率
- AkShare-期货数据-期货交易日历
- AkShare-另类数据-彭博亿万富豪指数
- AkShare-股票数据-券商业绩月报
- AkShare-期货数据-仓单日报-上海期货交易所
- AkShare-期货数据-仓单日报-大连商品交易所
- AkShare-期货数据-仓单日报
- AkShare-股票数据-美港目标价
- AkShare-Websocket-行情数据
- AkShare-股票-市场总貌