欢迎来到天天文库
浏览记录
ID:18972811
大小:56.50 KB
页数:20页
时间:2018-09-27
《数据结构c语言版 索引表77258》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构C语言版索引表77258数据结构C语言版索引表P86-P87编译环境:Dev-C++4.9.9.2日期:2011年2月8日说明一下,常用词表文件的数据,第一行是词表含有的常用词个数,然后每一行一个词,都是以回车符结束的。书目文件,每一行前面三个字符是书号,后面紧接着是书名,而没有空格,每一行一本书,以回车符结束。文件以一个空行结束。注意是回车符结束,这个要用编辑器显示了回车符的才能够看到,我就是不小心删了,然后一直出错的。*/#include#include#include<
2、malloc.h>#includetypedefintElemType;//串的堆分配存储typedefstruct{char*ch;//若是非空串,则按串长分配存储区,否则ch为NULLintlength;//串长度}HString;//带头结点的线性链表类型typedefstructLNode//结点类型{ElemTypedata;structLNode*next;}LNode,*Link,*Position;typedefstructLinkList//链表类型{Linkhead,tail;//
3、分别指向线性链表中的头结点和最后一个结点intlen;//指示线性链表中数据元素的个数}LinkList;//这里将有三个表,词表(一本书中的关键词),索引表,常用词表#defineMaxKeyNum25//索引表的最大容量(关键词的最大数)#defineMaxLineLen100//书目串(书名+书号)buf的最大长度#defineMaxWordNum10//词表(一本书的关键词)的最大容量#defineMaxNoIdx10//常用词(仅指大写)的最大数typedefstruct_WordListType{char*i
4、tem[MaxWordNum];//词表(字符串)指针数组intlast;//词的数量}WordListType;//词表类型(顺序表)typedefstruct{HStringkey;//关键词(堆分配类型,HString.h)LinkListbnolist;//存放书号索引的链表(LinkList.h)}IdxTermType;//索引项类型typedefstruct{IdxTermTypeitem[MaxKeyNum+1];intlast;//关键词的个数}IdxListType;//索引表类型(有序表)typed
5、efstruct{char*item[MaxNoIdx];//常用词表指针数组intlast;//常用词的数量}NoIdxType;//常用词表类型(有序表)//全局变量charbuf[MaxLineLen+1]={' '};//当前书目串(包括' ')WordListTypewdlist;//暂存一本书的词表NoIdxTypenoidx;//常用词表#defineMaxBookNum10//假设只对10本书建索引表#defineMaxKeyNum25//索引表的最大容量(关键词的最大数)#defineMaxLine
6、Len100//书目串(书名+书号)buf的最大长度typedefstruct{charbookname[MaxLineLen];//书目串intbookno;//书号}BookTermType;//书目项类型typedefstructBookListType//书目表类型(有序表){BookTermTypeitem[MaxBookNum];intlast;//书目的数量}BookListType;//书目表类型(有序表)//生成一个其值等于串常量chars的串TintStrAssign(HString*T,char*c
7、hars){inti,j;if((*T).ch)free((*T).ch);//释放T原有空间i=strlen(chars);//求chars的长度iif(!i){//chars的长度为0(*T).ch=NULL;(*T).length=0;}else{//chars的长度不为0(*T).ch=(char*)malloc(i*sizeof(char));//分配串空间if(!(*T).ch)//分配串空间失败exit(0);for(j=0;j
8、gth=i;}return1;}//初始化(产生空串)字符串TvoidInitString(HString*T){(*T).length=0;(*T).ch=NULL;}//若S>T,则返回值>0;若S=T,则返回值=0;若S
此文档下载收益归作者所有