26、数据结构笔记之二十六串应用之建立词索引表

26、数据结构笔记之二十六串应用之建立词索引表

ID:16465146

大小:78.55 KB

页数:17页

时间:2018-08-10

26、数据结构笔记之二十六串应用之建立词索引表_第1页
26、数据结构笔记之二十六串应用之建立词索引表_第2页
26、数据结构笔记之二十六串应用之建立词索引表_第3页
26、数据结构笔记之二十六串应用之建立词索引表_第4页
26、数据结构笔记之二十六串应用之建立词索引表_第5页
资源描述:

《26、数据结构笔记之二十六串应用之建立词索引表》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、26、蛤蟆的数据结构笔记之二十六串应用之建立词索引表本篇名言:“生命是一条美丽而曲折的幽径,路旁有妍花的丽蝶,累累的美果,但我们很少去停留观赏,或咀嚼它,只一心一意地渴望赶到我们幻想中更加美丽的豁然开朗的大道。然而在前进的程途中,却逐渐树影凄凉,花蝶匿迹,果实无存,最后终于发觉到达一个荒 漠。--萨拉”1.信息检索信息检索是计算机应用的重要领域之一。为了提高图书馆数目检索的效率,建立书名关键词索引,可以实现读者快速检索书目的自动化,即读者根据关键词索引表,读者可以方便查询到自己感兴趣的书目。准备一个文件BookInf

2、o.txt文件如下。注意最后一行不要后空行,不然程序会出错。2.BookInfo.txt005ComputerDataStructure010IntroductiontoDataStructure023FundamentalofDataStructure034TheDesignandAnalysisofComputerAlgorithms050IntroductiontoNumericalAnalysis067NumericalAnalysis3.BookIdx.txt最后代码运行完毕会生成如下的文本:关键字书号al

3、gorithms034,analysis034,050,067,computer005,034,data005,010,023,design034,fundamental023,introduction010,050,numerical050,067,structure005,010,023,1.代码具体实现1.1定义定义如下#defineMaxBookNum1000//假设只对1000本书建索引表#defineMaxKeyNum2500//索引表的最大容量#defineMaxLineLen500//书目串的最大长度

4、#defineMaxWordNum10//词表的最大容量typedefstruct{char*item[MaxKeyNum];//字符串的数组intlast;//词表的长度}WordListType;//词表类型(顺序表)typedefstructLNode{//存放书号的链表intdata[3];structLNode*next;}LNode,*LinkList;typedefstruct{//存放关键词的串char*ch;intlength;}HString;typedefstruct{HString*key;L

5、inkListbnolist;}IdxTermType;//索引项类型typedefstruct{IdxTermTypeitem[MaxKeyNum+1];intlast;}IdxListType;//索引表类型(有序表)char*buf;//书目串缓冲区WordListTypewdlist;//词表inti;//无重复的关键字个数intb;//保留i的前一次变换的值intv;char*com[10]={"and","a","an","the","a","an","to","of"};1.1InitIdxList初始

6、化操作,置索引表idxlist为空表,且在idxlist.item[0]设一空串。IdxListType*InitIdxList(IdxListType*idxlist){idxlist=(IdxListType*)malloc(sizeof(IdxListType));if(idxlist==NULL){printf("ERROR——1!");exit(-1);}idxlist->item[0].key=(HString*)malloc(sizeof(HString));idxlist->item[0].bnoli

7、st=(LinkList)malloc(sizeof(LNode));idxlist->item[0].key->ch=NULL;idxlist->item[0].key->length=0;idxlist->item[0].bnolist->next=NULL;idxlist->last=0;returnidxlist;}1.2GetLine从文件f读入一个书目信息到书目缓冲区buf其中v,buf是一个全局变量。当前设置的v最大是100,就是最多读取100行书的信息。voidGetLine(FILE*f){intj

8、=0;staticchara[100][100];charc;c=fgetc(f);while(((a[v][j++]=tolower(c))!='')&&(c!=EOF))c=fgetc(f);//printf("%c",a[v][j-1]);a[v][j-1]='';buf=a[v++];printf("%s",buf);}1.1E

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

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

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