2022 数据结构与算法《王道》学习笔记 (十)串 KMP算法 串的总结 课后习题笔记

简介: 2022 数据结构与算法《王道》学习笔记 (十)串 KMP算法 串的总结 课后习题笔记

前言

串的框架:


一、串的定义和实现

串是由零个或多个字符组成的有限序列。一般记为:

其中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算法

KMP算法 数据结构与算法专栏

有帮助的话点赞 收藏加关注哦


相关文章
|
4天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之插入排序
Java数据结构与算法:排序算法之插入排序
|
4天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之冒泡排序
Java数据结构与算法:排序算法之冒泡排序
|
4天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之归并排序
Java数据结构与算法:排序算法之归并排序
|
4天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之快速排序
Java数据结构与算法:排序算法之快速排序
|
4天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之选择排序
Java数据结构与算法:排序算法之选择排序
|
4天前
|
算法 Java 机器人
Java数据结构与算法:查找算法之线性查找
Java数据结构与算法:查找算法之线性查找
|
4天前
|
算法 搜索推荐 Java
Java数据结构与算法:排序算法之堆排序
Java数据结构与算法:排序算法之堆排序
|
4天前
|
算法 Java 机器人
Java数据结构与算法:查找算法之二分查找
Java数据结构与算法:查找算法之二分查找
|
1天前
|
人工智能 算法 BI
一篇文章讲明白KMP算法(俗称看毛片算法)
一篇文章讲明白KMP算法(俗称看毛片算法)
|
5天前
|
算法 Java
Java数据结构与算法:最短路径算法
Java数据结构与算法:最短路径算法