最近复习数据结构与算法,就把《数据结构(C语言版)》(清华大学,严蔚敏)拿出来看,在串的那一章的最后有一个程序设计题--------建立一个词索引表,写了一下,代码如下。、
文件1:define.h
内容:各种数据类型的定义
//
//
// 数据类型的定义
//
#define MaxBookNum 1000 // 假设只对1000本书建立索引表
#define MaxKeyNum 2500 // 索引表的最大容量
#define MaxLineNum 500 // 书目串的最大长度
#define MaxWordNum 10 // 词表的最大容量
// 书目类型的定义
typedef struct Book
{
char id[10] ; // 书号
char name[MaxLineNum] ; // 书名
} Book ;
//书目表的定义
typedef struct BookList
{
Book book[MaxBookNum] ; // 存储书目的表
int number ; // 书目数量
}BookList ;
// 关键字索引对应的书目id
typedef struct IdIndex
{
char id[10] ;
struct IdIndex * next ;
} IdIndex ;
// 索引类型定义
typedef struct BookIndex
{
char index[50] ;
IdIndex * head ;
} BookIndex ;
// 索引表
typedef struct BookIndexList
{
BookIndex bookindex[MaxKeyNum] ; // 索引项存储信息
int number ; // 索引项的书目
} BookIndexList ;
// 词表
typedef struct WordList
{
char Word[MaxWordNum][20] ;
int number ;
} WordList ;
// 关键字表
typedef struct KeyWordList
{
char keyword[20][20] ;
int number ;
} KeyWord ;
文件2:implenment.cpp
内容:各种函数的定义
/
//
// 实现主要函数
//
///
#include "define.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
// 从文件中读入词表信息
void GetWordInfo( WordList * wordlist )
{
int i = 0 ;
char str[1000] ;
// 打开文件
FILE * pf = fopen("word.txt","r+") ;
if( pf == NULL )
{
printf("打开文件word.txt失败!\n") ;
exit(0) ;
}
// 读取文件中的内容
while( feof(pf) != EOF )
{
if( fgets( str , 1000 , pf ) )
{
strcpy( wordlist->Word[i] , str ) ;
if( wordlist->Word[i][strlen(wordlist->Word[i])-1] == '\n' )
{
wordlist->Word[i][strlen(wordlist->Word[i]