设计任务与目标
【问题描述】
文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试写一个 实现这一目标的文字统计系统,称为“文学研究助手”。
【基本要求】
英文小说存放于一个文本文件中。待统计的词汇集合要依次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。
程序的输出结果是每个词的出现次数和出现位置所在行的行号,格式自行设计。
【选作内容】
(1)模式匹配要基于KMP算法
(2)整个统计过程中只对小说文字扫描一遍以提高效率
数据结构和算法说明
部分源码
// 串的堆分配存储表示
typedef struct HString
{
char *ch;
int length;
}HString;
typedef struct ShowDataElem
{
int row;
int count;
int location;
}ShowDataElem;
//行数据链表
typedef struct LRowNode
{
ShowDataElem data;
struct LRowNode *next;
}LRowNode,*RowLink;
typedef struct
{
RowLink head;
RowLink tail;
int len;
}RowLinkList;
//串数据链表
typedef struct StringNode
{
HString str;
RowLinkList rowlist;
StringNode *next;
}StringNode,*StringLink;
typedef struct
{
StringLink head,tail;
int len;
}StringLinkList;
//以上为定义的所需要的结构体
void copy(HString &T, char *chars)
{
int len;
int i;
len=strlen(chars);
if(!len)
{
T.ch=NULL;
T.length=0;
}
else
{
T.ch = (char *) malloc(len*sizeof(char) );
if( !T.ch )
exit(0);
for(i=0;i

