串的定义和BF算法的简单使用
串其实也是线性结构,只是串的内容必须是字符,所以他又有他的不同的应用,最常见的应该是串的模式匹配,
下面就来说说模式匹配中的BF算法,其实就是一个一个向后面匹配,如果没有成功,那么回到主串刚开始的字符后面一个字符开始新的一次匹配,之后重复这个操作,如果匹配成功,那么返回第一个字符的位置,如果不成功,那么返回0,
1.串的定义
#include <stdio.h> #include <stdlib.h> #define MaxSize 100 typedef struct { char ch[MaxSize + 1]; int length; }String;
2.BF算法
int indexBF(String S,String T,int pos) { int i = pos; int j = 1; while (i<=S.length&&j<=T.length) { if (S.ch[i]==T.ch[j]) { i++; j++; } else { i = i - j + 2; j = 1; } } if (j>T.length) { return i - T.length; } else { return 0; } }
好了,我们下回见,peace
版权声明:本文为gitpy123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。