数据结构----------串

82 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

串的存储结构

//------串的定长顺序存储------- 

     作用局限  其实就是 限定长度的 string

#define MAXSIZE 255
typedef struct{
	char ch[MAXSIZE+1]; 
}SString;

//------串的堆式顺序存储结构-----

       不限长度的string

typedef struct{
	char *ch;
}HString; 

//------串的链式存储结构--------

#define CHUNKSIZE 80
typedef struct Chunk{
	char ch[CHUNKSIZE];//相当于CHUNKSIZE个结点
	struct Chunk *next;//指针域
}Chunk; 
typedef struct{
	Chunk *head,*tail; //头尾指针 
}LString;

串的模式匹配算法

BF算法   //从pos位置开始查找   存在则返回T在S中的第一次出现的位置  不存在返回-1

#include<iostream>
using namespace std;
char a[100],b[100];
int n;

int Index_BF(char S[],char T[],int pos)
{
	int i=pos;
	int j=0;
	while(S[i+j]!='\0'&&T[j]!='\0')
	{
		if(S[i+j]==T[j]) j++;
		else
		{
			i++;
			j=0;
		}	
    }
	    if(T[j]=='\0') return i;
 } 
 int main()
 {
 	cin>>a>>b>>n;
	cout<<Index_BF(a,b,n);
	return 0; 
 }