数据结构------建立一个词索引表

在复习数据结构时,通过《数据结构(C语言版)》一书,我尝试解决了一道程序设计题——创建词索引表。程序涉及到文件处理,包括读取bookinfo.txt和word.txt文件,最终实现对文本的词索引。代码分别在define.h中定义了数据类型和函数,实现了词索引的构建并进行了测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近复习数据结构与算法,就把《数据结构(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]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值