我是靠谱客的博主 纯情大神,最近开发中收集的这篇文章主要介绍数据结构:模式匹配BF算法一、BF算法原理二、实现 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、BF算法原理

子串的定位操作通常称为串的模式匹配(其中T称为模式串)。这是串的一个重要操作,许多软件,如果有编辑菜单的话,则其中必有查找子菜单项,这就是一个模式匹配问题。、

Index(S, T, pos)

初始条件:串ST存在,T是非空串;

1<=pos<=S.Length-T.Length+1

操作结果:若主串S中存在与T相等的子串,返回它在主串第pos个位置后第一次出现的位置,否则返回0

基本思想:从主串S的第pos个字符起和模式的第一个字符比较之,若相等,则继续逐个比较后继字符;否则从主串的下一个字符起再重新和模式的字符比较之。依次类推,直到T中的每个字符依次和主串S中的一个连续的字符序列相等,则称匹配成功,函数值为和模式T中的第一个字符相等的字符在主串中的序号,否则称匹配不成功。


例:主串S="ababcabcacbab",模式T="abcac"

 

BF算法比较简单,下面来考虑他的实现


二、实现 

#include<iostream>
using namespace std;

int BF(char S[], char T[])
{
	int i = 0, j = 0;
	while (S[i] != ''&&T[j] != '')
	{
		if (S[i] == T[j]) {
			i++;   j++;
		}
		else {
			i = i - j + 1;    j = 0;
		}
	}
	if (T[j] == '') return (i - j + 1);
	else return 0;
}

int main()
{
	char S[100],T[100];
	int t;
	scanf("%s",S);
	scanf("%s",T);
	t=BF(S, T);
	cout<<t;
	
	return 0;
}

 

 

 

最后

以上就是纯情大神为你收集整理的数据结构:模式匹配BF算法一、BF算法原理二、实现 的全部内容,希望文章能够帮你解决数据结构:模式匹配BF算法一、BF算法原理二、实现 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部