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

本文详细介绍了串的不同存储结构,包括定长顺序存储、堆式顺序存储和链式存储,以及串的模式匹配算法BF算法的具体实现。通过代码示例展示了如何使用BF算法在字符串中查找子串的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

串的存储结构

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

     作用局限  其实就是 限定长度的 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; 
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值