C/C++小型文本查询引擎

C/C++小型文本查询引擎

小型文本查询引擎的设计与实现
实验要求:
(1)构造二叉查找树
① 从文件中读入内容,过滤掉阿拉伯数字和标点符号,并将英文字母的大写形式
全部转换成小写形式。
② 按照英文字母表的顺序构造英文单词的二叉查找树。当两个英文单词的首字母
相同时,按第二个字母进行排序,依次类推。
③ 为每个英文单词建立一个单链表,用于存放该单词在文档中的位置信息(即:
该单词是文档的第几个单词,序号从1开始)。如果一个单词在文档中出现多次,则该链表中将包含多个结点,并按照单词在文档中出现的次序(位置信息)递增排序。
(2)遍历二叉查找树
① 实现二叉查找树的先序遍历,以便能够找出出现次数最多的单词;
② 查询:输入一个待检索单词,以先序遍历的方式从二叉查找树中查找单词,如
果能找到该单词,则输出该单词在原始文档中出现的位置信息,否则提示文档中不包含该检索词;
③ 实现二叉查找树的中序遍历,并将遍历结果保存到文件中(words.txt)。(要求:
每个单词占一行,每行依次记录单词、该单词出现的次数、以及该单词在文档中的位置信息。)
(3)删除结点
① 给定一个停用词列表(停用词是指对查询没有作用的词,如:of, and, a, an, the
等等),将二叉查找树中的属于停用词表中的单词依次删除(不仅删除结点,还需清空记录该单词位置信息的单链表);
② 在查询时,当输入的查询词是停用词时,则不进行查询。
(4)多关键词查询
① 允许一次输入两个或者更多个单词进行查询,即:先获得这些单词各自在文档中出现的位置信息,然后再分析这些单词的位置信息,判断这些单词在原始文档中是否存在连续出现的情况。
② 在查询时,当输入的查询词包含停用词时,先去除停用词,再进行查询。

源码传送门

传送门:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值