题目:poj2503

题意:给几个单词的意思,再给几个单词,查字典~

解答:字典树咯(注意节点定义,每个节点定义一个字符数组)

注意:空行停止!!!

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
using namespace std;
const int sonnum = 26,base = 'a';
struct Trie
{int num;bool terminal;struct Trie *son[sonnum];char mean[25];
};
Trie *NewTrie()
{Trie *temp = new Trie;temp -> num = 1;temp -> terminal = false;memset(temp -> mean,0,sizeof(temp->mean));///for(int i = 0;i < sonnum;i++){temp -> son[i] = NULL;}return temp;
}
void Insert(Trie *pnt,char *s1,char *s2,int len1,int len2)
{Trie *temp = pnt;for(int i = 0;i < len1;i++){if(temp -> son[s1[i]-base] == NULL){temp -> son[s1[i]-base] = NewTrie();}elsetemp -> son[s1[i]-base] -> num++;temp = temp -> son[s1[i]-base];}temp -> terminal = true;for(int i = 0;i < len2;i++){temp -> mean[i] = s2[i];}//  strcpy(temp->mean,s2);(strcpy函数:字符串复制)return;
}
Trie *Find(Trie *pnt,char *s,int len)
{Trie *temp = pnt;bool flag = false;for(int i = 0;i < len;i++){if(temp -> son[s[i]-base] == NULL){printf("eh\n");return temp;}else temp = temp -> son[s[i]-base];}if(temp ->  terminal == true){printf("%s\n",temp -> mean);return temp;}return temp;
}
int main()
{Trie *tree = NewTrie();char tm;char a[20],b[20];while(1){scanf("%s",b);tm = getchar();///if(tm == '\n')///break;scanf("%s",a);Insert(tree,a,b,strlen(a),strlen(b));}Find(tree,b,strlen(b));///注意这里while(~scanf("%s",b)){Find(tree,b,strlen(b));}return 0;
}

动态建树之——查字典相关推荐

  1. 字典树 静态建树与动态建树

    http://blog.csdn.net/wyg1997/article/details/52121597 其实动态建树和静态建树都一样,只是动态建树省空间费时间,静态建树省时间费空间. 那么如果碰上 ...

  2. 存用部首查字典如何查_文献阅读技巧:牛人博士如何看文献!

    这是 社科学术圈 推送的第1658篇文章 发表学术论文,阅读文献是最基本的.今天我们总结了几个牛人博士的文献阅读经验,希望能让你有所思考和感悟.(一)从phd到现在工作半年,发了12篇paper, 7 ...

  3. 全面讲解Python字典;--什么是字典?字典的常用方法;创建空字典并赋值,增删改查字典中的元素

    一.什么是字典? 二.字典的常用方法 1.len()统计数据项长度 A={"name":'迪奥','age':'600'} print(len(A)) 2 计算方法是每隔一个逗号是 ...

  4. sdutOJ 查字典(Python)

    思路:读入时按冒号split之后填成字典即可. #sdut 查字典while True:dic = {}n,m = input("").split(' ')n = int(n)m ...

  5. 创建一个简单的后台教务管理系统,包含动态增删改查学生,年级和课程信息及查看登录日志等功能,包含表单验证.

    创建一个简单的后台教务管理系统,包含动态增删改查学生,年级和课程信息及查看登录日志等功能,包含表单验证. 一.显示页面 新建一个登录页面,即login.jsp <%--Created by In ...

  6. 古汉语常用字字典_掌握了音序或部首查字法,就会查字典了?不,差得远着呢!...

    前一段时间,我连续写了两篇关于使用工具书的文章. 为什么要教会孩子使用工具书,我和你想的不大一样 给孩子选择合适的工具书,一定要注意哪些问题 如果说以上两篇是主要是在谈原则和方向的问题,那么本篇就是方 ...

  7. 五笔字码反查字典 ZDic for Palm 制作方法

    五笔字码表反查字典可以从这里获得: http://braveo.blogbus.com/logs/24519222.html 本文主要是介绍这个字码表的制作方法.以作抛砖引玉之用. 1. 从scim字 ...

  8. 华北电力大学保定校区计算机专业,华北电力大学保定校区本科计算机科学与技术_华北电力大学保定校区本科计算机科学与技术简介-查字典学校网...

    华北电力大学保定校区·本科·计算机科学与技术 学科:工学 门类:电气信息类 专业名称:计算机科学与技术 业务培养目标:本专业培养具有良好的科学素养,系统地.较好地掌握计算机科学与技术包括计算机硬件.软 ...

  9. 浮点数和整数的区别python_浮的部首|浮的拼音|浮的组词|浮的意思 - 查字典

    浮 fú 拼音: fú 注音: ㄈㄨˊ 部首笔划:3 总笔划:10 繁体字:浮 汉字结构:左右结构 简体部首:氵 造字法:形声 笔顺:捺捺横撇捺捺撇折竖横 浮的意思.基本信息 五笔86:IEBG 五笔 ...

最新文章

  1. 大厂程序员回乡真风光?敲锣打鼓游街欢迎,横幅写着月薪和公司!
  2. python读excel乱码_Python读写excel练习_去除excel中乱码行,并添加列
  3. [Linq]Linq To Xml (待整理)
  4. IntelliJ IDEA中右键新建时,选项没有Java class的解决方法和具体解释
  5. 用wxpython做ui_wxPython - 如何强制UI刷新?
  6. 后端技术:SpringBoot配置热加载工具(devtools)笔记
  7. Python基础-----列表、元组、集合(2)
  8. leetcode979. 在二叉树中分配硬币(dfs)
  9. Quantumas,作者太NB了,俺发现俺菜得跟猪一样!!!
  10. 7-2 查找指定字符 (15 分)
  11. 【微信小程序】视频播放小程序
  12. 开发管理·华为IPD
  13. 服务器装无线上网卡,dlink无线上网卡怎么安装和设置
  14. 如何用NLP辅助投资分析?三大海外机构落地案例详解
  15. 计算机不显示磁盘阵列,识别不到硬盘?bios中怎么改raid为ahci硬盘模式。
  16. 骆昊python100天 github_GitHub - zsfz/Python-100-Days: Python - 100天从新手到大师
  17. 实现根据相机视角输入WASD移动和转向的功能
  18. 关于 右键新建选项 假死 死机 卡机 崩溃 闪退 的问题 (含 无法拖拽文件 或者ps无法拖拽等)
  19. 【干货长文】诺亚财富解读市场信息心理学
  20. 蓝牙与UWB的技术对比

热门文章

  1. 新版本 chrome 手机浏览器关闭为您推荐的文章方法
  2. 第一天使用 csdn
  3. 小数除法用计算机探索规律教学反思,小数除法教学反思
  4. 轮播图实现方法一——层叠轮播图
  5. android地鼠游戏,非常地鼠手游
  6. No.053<软考>《(高项)备考大全》【冲刺7】《软考之 119个工具 (5)》
  7. JXTA promotion 3, basic concepts
  8. 2019年熔化焊接与热切割作业安全生产模拟考试题库及答案
  9. change lan.php lanid,天融信负载均衡本地文件包含漏洞
  10. centos8 安装docker