1.1简单的模式匹配算法
以下为顺序串的简单模式匹配算法,利用i和j记录当前的匹配位置,从目标串T的第pos个字符开始比较,若相等则比较后续的字符,若不相等则回溯到目标串的下一个字符开始与模式串的第一个字符比较。
int index(seqstring*T,seqstring*p,int pos)
{
i=pos;
j=1;
while(i<T->length&&j<p->length)
{
if(T->ch[i-1]==p->ch[j-1])
{
i++;
j++;
}
else
{
i=i-j+2;//主串回溯到这里
j=1;
}
if(j>p->length)
{
return (i-p->length);
}
else return 0;
}
}