资源描述:
《通用文本算法库的设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、通用文本算法库的设计毕业论文目录第一章工程结构说明1第二章源程序头文件2Base.h2Queue.h2ExactMatchingS.h3Automata.h4ExactMatchingM.h5RegularExpression.h5SuffixArray.h7ExtendKMP.h8DES.H8DoubleHash.h10第三章源程序代码文件12ExactMatchingS.cpp12ExactMatchingM.cpp20Automata.cpp23RegularExpression.cpp26Su
2、ffixArray.cpp33DES.cpp39DoubleHash.cpp45ExtendKMP.cpp4749通用文本算法库的设计——代码清单第三章源程序代码文件第一章工程结构说明整个工程由10个头文件以及8个源文件组成,可在VisualC++或者GCC下编译。头文件中含有所有的函数声明,而源文件中则是所有函数的具体实现。该工程的结构如下图所示:49通用文本算法库的设计——代码清单第三章源程序代码文件第二章源程序头文件Base.h//Base.h//头文件包含及基础数据结构,头文件//by赵扶摇#
3、include#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;#defineMAX_RANGE256#defineMAX_PATT
4、ERN_LENGTH1024#defineMAX_TEXT_LENGTH100000#defineMAX_LOGN20#defineFAIL-1#defineEPSILON1#defineMAX_REP50#defineMACHINE_WORD_LENGTH32#defineLOG_20.693147//ln(2)的大小#definelog_2(a)(int)(log((double)(a))/LOG_2)#definenewArray(type,p,size,val){(p)=newtype[(si
5、ze)];memset(p,(val),sizeof(type)*(size));}Queue.h//Queue.h//队列,头文件//by赵扶摇#pragmaonce49通用文本算法库的设计——代码清单第三章源程序代码文件typedefstruct{intcurr;intparent;charlabel;}QueueNode;//专用队列节点#defineEnQueue(Q)(&(Q[rear++]))//取得要记录的节点#defineDeQueue(Q)(&(Q[front++]))#define
6、EmptyQueue()(rear==front)#defineInitQueue(Q,size){Q=newQueueNode[(size)];rear=front=0;}ExactMatchingS.h//ExactMatchingS.h//多串精确模式匹配,头文件//by赵扶摇#pragmaonce#include"Base.h"//Shift-And算法voidShiftAnd(char*t,char*p,intn,intm,intres[],intcnt);//ShiftOr算法voidSh
7、iftOr(char*T,char*P,intn,intm,intres[],intcnt);//暴力算法voidNaive(char*t,char*p,intn,intm,intres[],intcnt);//RabinKarp算法voidRabinKarp(char*t,char*p,intn,intm,intres[],intcnt);//更快的RabinKarp匹配版本voidRabinKarpFaster(char*t,char*p,intn,intm,intres[],intcnt);//
8、自动机的建立voidBuild_DFA(char*P,intm,inttrans[][MAX_PATTERN_LENGTH]);//使用前向自动机的匹配算法voidPrefixFiniteAutomata(char*T,char*P,intn,intm,intres[],intcnt);//KMP算法预处理函数voidpreKmp(char*P,intm,intkmpNext[]);//KMP算法voidKMP(char*P,intm,char*T,in