版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构试验 文学助手 KMP 实验报告 实验名称:数据结构实验三 实验内容 :文学家助手 实验仪器: 计算机 学院:计算机学院 班级:B软件工程 学号 :姓名: XXXX 成绩: 指导教师:XXX 一、 问题描述 文章存于一个文本文件中。待统计的词聚集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。程序的输出结果是每个词的出现次数和出现位置所在的行号,格式自行设计。 要
2、求采用基于KMP的算法实现。 整个统计过程只对文章文字扫描一遍以提高效率。 程序代码 #include "stdafx.h" #include "stdafx.h" #include "stdio.h" #include "malloc.h" #include "string.h" #includ
3、e "conio.h" using namespace System; char articles="aaa bbb ccc abc abc" struct HString char* words; int length; int* next; int count; int j; int row=0; int co
4、l=0; HString* creat(int length) HString* words=(HString*)malloc(sizeof(HString); words->words = (char*)malloc(sizeof(char)*length); words->length=length; words->next =(int*)malloc(sizeof(int)*(length+1); words->j = 0;
5、; words->count=0; return words; int Index_KMP(char* S,HString* w,int pos) int i=pos; int j=0; int l; l=strlen(S); while(i<=l&&j<w->length) if(j<0|Si=w->wordsj) &
6、#160;+i; +j; else j=w->nextj; if(j=w->length) return i-w->length; else return 0; void Do_Index_KMP(char* S,HString* w,int num) int i=0; int l
7、; l=strlen(S); while(i<l) if (Si='.')col=0;row+; else col+; for (int s=0;s<num;s+) while (ws->j >= 0 && ws->wordsws->j !=Si) ws->j=ws->nextws->j; +ws->j;
8、 if (ws->j=ws->length) printf("%s is at row:%d-col:%dn",ws->words,row+1,col - ws->length+1); ws->count+; ws->j =0; i+; for(int s=0;s<num;s+) printf("The count of %s is %dn&q
9、uot;,ws->words,ws->count); void get_next(HString* w) int i=1; int j=0; w->next1=0; while(i<w->length) if(j=0|w->wordsi-1=w->wordsj-1) +i; +j; w->nexti=j;
10、 else j=w->nextj; for(i=0;i<w->length;i+) w->nexti=w->nexti+1-1; void main() HString* words; int word_number=0; char input_chars128; printf("the article is
11、:n"); int i=0; while(articlesi!='0') i+; printf("%c",articlesi); if(articlesi='.') printf("n"); printf("nn*n"); printf("how many words you want to count:n
12、"); scanf("%d",&word_number); words=(HString*)malloc(sizeof(HString*)*word_number); for (int i=0;i<word_number;i+) printf("nplease input %dth word:n",i+1); scanf("%s",input_chars); wordsi=creat(strlen(input_chars); strcpy(wordsi->words,input_chars); get_next(wordsi); Do_Index_KMP(articles,words,word_number); for (int i=0;i<word_number;i+) free(wordsi); free(words); while(!kbhit();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年甘肃省定西市陇西县福星中心卫生院高塄分院招聘乡村医生(公共基础知识)测试题附答案
- 2025年国家矿山安全监察局安徽局安全技术中心招聘劳务派遣财务人员1名考试参考题库附答案
- 2025年河北石家庄赵县文化广电体育和旅游局公开招聘劳动聘用人员2名(公共基础知识)综合能力测试题附答案
- 2026广东东莞市第二人民法院招聘劳动合同制审判辅助人员44人笔试参考题库及答案解析
- 学校党建年终工作总结【演示文档课件】
- 2026四川简州空港建设集团有限公司招聘劳务派遣人员1人笔试参考题库及答案解析
- 2026湖北利航交通开发有限公司本部职能部门普通管理岗竞聘上岗15人笔试备考试题及答案解析
- 2026山东省《东方烟草报》社有限公司招聘3人笔试参考题库及答案解析
- 外阴鳞状细胞癌总结2026
- 2026年湖口县公安局交通管理大队公开招聘交通协管员笔试备考题库及答案解析
- 6.1.3化学反应速率与反应限度(第3课时 化学反应的限度) 课件 高中化学新苏教版必修第二册(2022-2023学年)
- 2026年辽宁轻工职业学院单招综合素质考试参考题库带答案解析
- 2026届北京市清华大学附中数学高二上期末调研模拟试题含解析
- 2026年马年德育实践作业(图文版)
- 医院实习生安全培训课课件
- 四川省成都市武侯区西川中学2024-2025学年八上期末数学试卷(解析版)
- 2026年《必背60题》抖音本地生活BD经理高频面试题包含详细解答
- 土方回填工程质量控制施工方案
- 2025年湖南城建职业技术学院单招职业适应性测试题库附答案
- 2026贵州大数据产业集团有限公司第一次社会招聘考试题库新版
- 珠海高新区2025年下半年公开招聘公办中学事业编制教师备考题库及答案详解一套
评论
0/150
提交评论