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


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

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

    源码传送门

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

  • 相关阅读:
    【算法】斐波那契数列与台风的故事
    Matlab:十六进制和二进制值
    智能家居涉及到的12个物联网传感器!
    R可视化:分组频率分布直方图和密度图
    26栈和队列-简单实践
    【VUE3】保姆级基础讲解(一):初体验与指令
    全志R128芯片应用开发案例——ADC驱动烟雾传感器
    vmware中使用Ubuntu,ifconfig没有ens33,ping www.baidu.com出现未知的名称或服务
    【mysql版本修改】
    Jetpack Compose基础组件之 — Text
  • 原文地址:https://blog.csdn.net/qq_35960743/article/details/128050164