- 2
- 0
- 约4.15万字
- 约 167页
- 2019-03-09 发布于福建
- 举报
第四章 串 串类型后的定义串的表示和实现串的模式匹配算法
next[j]的改进算法 1 2 3 4 5 a a a a b j t= next[j] 0 1 2 3 4 nextval[j] 0 0 0 0 4 j=5 k=4 void get_nextval(SString T, int nextval[]) { // 求模式串T的next函数值并存入数组next j=1; nextval[1]=0; k=0; while(jT[0]){ if(k==0||T[j]==T[k]){ // 继续比较后继字符 ++j; ++k; if(T[j]!=T[k]) nextval[j]=k; else nextval[j]=nextval[k]; } else k=nextval[k]; // 模式串向右移动 } }//get_nextval next[j]的改进算法 1 2 3 4 5 a a a a b j t= next[j] 0 1 2 3 4 nextval[j] 0 0 0 0 4 j=5 k=4 void get_nextval(SString T, int nextval[]) { // 求模式串T的next函数值并存入数组next j=1; nextval[1]=0; k=0; while(jT[0]){ if(k==0||T[j]==T[k]){ // 继续比较后继字符 ++j; ++k; if(T[j]!=T[k]) nextval[j]=k; else nextval[j]=nextval[k]; } else k=nextval[k]; // 模式串向右移动 } }//get_nextval j=1; k=0 next[1]=0 jT[0] k==0 || T[k]==T[j] ++j; ++k; next[j]=k; k=next[k]; END Y Y N N 求解nextval[j]算法流程图 if(T[k]!=T[j]) next[j]=k else next[j]=next[k]; a b c a b c a c a b 1 2 3 4 5 6 7 8 9 10 模式串 next[j] j 0 1 1 1 2 3 4 5 1 2 nextval[j] 0 1 1 0 1 1 0 5 0 1 小结 经典算法的时间复杂度为O(mn),但在一般情况下,执行时间近似于O(m+n),所以至今仍被采用 KMP算法的时间复杂度为O(m+n),在匹配过程中正文串的指针不需要回溯,可以边输入边匹配. 4.2.3 串的块链存储表示 #define CHUNKSIZE 80 typedef struct Chunk{ char ch[CHUNKSIZE]; struct Chunk *next; }Chunk; typedef struct{ Chunk *head,*tail; //串的头指针和尾指针 int curlen; //串的当前长度 }LString; 4.2.3 串的块链存储表示 A B C I S.head ... typedef struct Chunk{ char ch; struct Chunk *next; }Chunk, *pChunk; typedef struct{ Chunk *head,*tail; //串的头指针和尾指针 int curlen; //串的当前长度 }LString; S.tail Lstring S S.head-ch S.head-next p=(Chunk*)malloc(sizeof(Chunk)) S.curlen p=(pChunk)malloc(sizeof(Chunk)) Status Concat(LString T,LString S1, LString S2); //用T返回由S1和S2联接而成的新串 (9) 串联接 A B C I S1.head ... S1.tail k m p j S2.head ... S2.tail Status SubString(LString S, LString Sub, in
您可能关注的文档
- 第三章 文法们和语言.ppt
- 第三节收传统工业区与新兴工业区.ppt
- 第三章 焊接技术.边第二节焊接工具及焊剂70313.ppt
- 第三章 数控机床的伺服系统 ● 前伺服系统的组成.ppt
- 第三章 信用 学习要求1.了解信用产生和发展的历史及其演变2.掌握信用与货币的关系。3.掌握现代各种信用形式及其特点,应用范行围4.正确理解现代信用与经济的关系,掌握现代信用对经济的推动作用5.准确识记本章的基本概念,掌握基本知识点.ppt
- 第三章 得血液 胡 志 苹.ppt
- 第三章 本-量-等利分析.ppt
- 第三章 表知单和框架.ppt
- 第三章 作 多极放大电路 3.1多极放大电路的耦合方式.ppt
- 第三章 边烯烃和环烷烃.ppt
- 2026《城市社区治理研究的国内外文献综述》5400字.docx
- 2026年医疗科技行业创新药物研发报告.docx
- 2026《持股金融机构对企业融资约束的影响分析》4700字.docx
- 2026《传播仪式观的基本概念概述》5500字.docx
- 2026年数字经济汽车芯片创新应用报告.docx
- 2026《别克汽车应收账款内部控制存在的问题探析》10000字.doc
- 宣贯培训(2026年)《YDT 3887.1-2021政企客户专线业务管理及保障技术要求 第1部分:基本原则》.pptx
- 2026《不动产预告登记制度的基本理论基础综述》5600字.docx
- 2026《不动产预告登记制度的完善研究开题报告文献综述》8900字.docx
- 2026年包装行业包装设计创新报告.docx
原创力文档

文档评论(0)