前言
串的框架:
一、串的定义和实现
串是由零个或多个字符组成的有限序列。一般记为:
其中S是串名,单引号括起来的字符序列是串的值;ai可以是字母、数字或其他字符;串中字符的个数n称为串的长度。n=0时的串称为空串。
二、串的存储结构
1.定长顺序存储表示
类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值得字符序列。在串得定长顺序存储结构中,为每个串变量分配一个固定长度得存储区,即定长数组。
#define MAXLEN 255 //预定义最大串长为255 typedef struct{ char ch[MAXLEN]; //每个分量存储一个字符 int length; //串的实际长度 }SString;
2.堆分配存储表示
堆分配存储表示仍然以一组地址连续的存储单元存放串值得字符序列。但它们得存储空间是在程序执行过程中动态分配得到的。
typedef struct{ char *ch; //按串长分配存储区,ch指向串的基地址 int length; //串的长度 }HString;
3.块链存储表示
串值的链式存储方式:
4.串的基本操作
5.串的模式匹配
简单模式的匹配算法举例:
下一章
KMP算法
有帮助的话点赞 收藏加关注哦