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


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

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

    源码传送门

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

  • 相关阅读:
    比React—Redux和Redux好用100倍的原子级状态管理器,是我们公司自己封装的npm包,如果感兴趣可以研究研究,会大大提高开发效率
    STM32 相关RTOS
    【人工智能】基于八数码问题对比搜索算法的性能
    Matplotlib数据可视化基础
    汽车存储SSD面临的挑战与机遇
    初识类和对象
    Bootstrap(三)
    Solidity中的可支付函数是什么?
    websocket 初识
    微前端二:qiankun
  • 原文地址:https://blog.csdn.net/qq_35960743/article/details/128050164