数据结构课程设计最终报告

数据结构课程设计最终报告

ID:29175007

大小:92.50 KB

页数:10页

时间:2018-12-17

数据结构课程设计最终报告_第1页
数据结构课程设计最终报告_第2页
数据结构课程设计最终报告_第3页
数据结构课程设计最终报告_第4页
数据结构课程设计最终报告_第5页
资源描述:

《数据结构课程设计最终报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、《数据结构》实验报告实验题目:现在有一个英文字典(每个单词都是由小写的'a'-'z'组成),单词量很大,达到120多万的单词,而且还有很多重复的单词。此外,我们现在还有一些Document,每个Document包含一些英语单词。针对这个问题,请你选择合适的数据结构,组织这些数据,使时间复杂度和空间复杂度尽可能低,并且解决下面的问题和分析自己算法的时间复杂度。◎实验目的:在本次课程设计中,希望同学们根据自己所学的知识,查找相关的资料,构造合适的数据结构,尽自己最大的努力解决这些问题,从而使自己学到更多新的知识。◎实验内容:1)基本型问题(1)选择合适的数据结

2、构,将所有的英文单词生成一个字典Dictionary。(2)给定一个单词,判断这个单词是否在字典Dictionary中。如果在单词库中,输出这个单词总共出现的次数。否则输出NO2)扩展型问题(3)给定一个单词,按字典序输出字典Dictionary中所有以这个单词为前缀的单词。例如,如果字典T={a,aa,aaa,b,ba},如果你输入a,那么输出应该为{a,aa,aaa}。(4)给定一个单词,输出在Dictionary中以这个单词为前缀的单词的出现频率最高的10个单词,对于具有相同出现次数的情况,按照最近(即最后)插入的单词优先级比较高的原则输出。(5)输

3、出Dictionary中出现次数最高的10个单词。3)高级型问题(6)现在我们有一些Document,每个Document由一些单词组成,现在的问题就是给你一个word,检索出哪些Document包含这个word,输出这些Document的DocumentID(就如同搜索引擎一样,即输入一些关键字,然后检索出和这些关键字相关的文档)。(7)在第(6)问中,我们只考虑了一个word在哪些Document中的情况,我们进一步考虑2个相邻word的情况,检索出同时包含这两个相邻word的DocumentID。4)挑战型问题(8)现在我们再对(7)的问题进行扩展,

4、把(7)中的只检索相邻2个word推广到可以检索多个word(即连续的k个word,其中k>=2),检索出同时包含k个连续word的DocumentID。一、需求分析1、本程序无需输入,通过文件的打开与读写得到最终结果。2、输出形式诸如“第步已完成,结果写入文件中”。3、建立字典树,对字典树进行一系列的操作。二概要设计为实现要求,应以字典树为存储结构。1.基本操作初始条件:字典树存在操作结果:建立其他数据结构,实现对字典树的查找及对结果的保存2.本程序包括六个模块(1)主函数模块(2)字典树建立模块(3)单词查找模块(4)查找以既定字串为前缀的所有字串(5

5、)查找同前缀字串中的前十个最高频词汇模块(6)查找出现频率最高前十单词模块三详细设计1.元素类型,结点类型和指针类型:structTrie_Node;intsign1,sign2=0,sign3=1,sign4=1;typedefstructNode_ele{intsign4;//用于表示插入时的优先级intnum;Trie_Node*next;intsign;char*word;//指向查询后的单词}Ele,*Ele1;2.(1)主函数模块voidmain()//主函数{PTrie_NodeHead=NULL;charword[20]={''};Cr

6、eat_Trie(Head);charword1[50];printf("--------第一题完成--------");printf("");FILE*fp1=fopen("SearchWordInVocabulary.txt","r");//打开“读”文件FILE*fp2=fopen("SearchWordInVocabulary_Result.txt","w");//打开“写”文件inti=1;while(fscanf(fp1,"%s",word1)!=EOF){fprintf(fp2,"CASE%d:",i++);Search_Trie(H

7、ead,word1,fp2);}printf("--------第二题完成,结果写入文件SearchWordInVocabulary_Result.txt中--------");printf("");FILE*fp3=fopen("TotPrefixWord.txt","r");FILE*fp4=fopen("TotPrefixWord_Result.txt","w");PTrie_Nodeph;intj=1;while(fscanf(fp3,"%s",word1)!=EOF){ph=Search_Trie_1(Head,word1);if(ph==N

8、ULL){fprintf(fp4,"CASE%d:",j++)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。