C语言数据结构——串

串的定义:
串是由零个或多个字符串组成的有限序列,又叫字符串。
C语言数据结构——串
串的长度:
(1<=i<=n)可以是字母、数字或其他字符;串中字符的数目n称为串的长度。零个字符的串称为空串,他的长度为0。
串可以是空串,即没有字符,直接由" "表示(注意里面没有空格哦!)。
例如:
a=‘BEI’
b=‘JING’
c=‘BEIJING’
d=‘BEI JING’
则a,b,c,d 它们的长度分别为3,4,7,8;并且a和b都是c和d的子串,a在c和d中的位置都是1,而b在C中的位置是4,在d中的位置则是5.
注意:
由一个或者多个空格组成的串,称为空格串,它的长度为串中空格字符的个数。
总结:
通常称字符在序列中的序号为该字符在串中的位置,子串在主串中的位置则以子串的第一个字符在主串中的位置来表示。
串的相等:
如果两个串相等,当且仅当这两个串的值相等,也就是说,只有当两个串的长度相等,并且各个对应的位置的字符都相等才相等。

子串和主串:
串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串相应的称为主串。
例如:
“over”是“lover”的子串
“end”是“friend”的子串
“lie”是“believe”的子串
**注意:*串值必须用一对单引号括起来,但单引号本身不属于串,它的作用只是为了避免与变量名或数的常量混淆而已。例如:
X=‘123’
则表明X是一个串变量名,赋给它的值是字符序列123。
串的存储结构:
串的存储结构和线性表相同,也分顺序存储结构和链式存储结构。
串的顺序存储结构是用一组地址连续的存储单元来存储串中的字符序列的。
按照预定义的大小,为每个定义的字符串变量分配一个固定长度的存储区,一般用定长数组来定义。
与线性表相似,既然是固定长度的存储区,就存在一个空间分配不灵活的问题,那么会考虑用链式存储结构。
串的基本操作:
C语言数据结构——串
C语言数据结构——串
BF算法:
BF算法属于复苏的模式匹配算法,它的核心思想是:
C语言数据结构——串
该算法最坏的情况下要进行M
(N-M+1)次比较,时间复杂度为O(M*N)。
在这里S是主串、T为子串,这种子串的定位操作通常称作串的模式匹配。
例如;
C语言数据结构——串
C语言数据结构——串
C语言数据结构——串
C语言数据结构——串
希望大家在学习C语言的数据结构都能坚持学下去!!!
我感觉太难了,最近有点懈怠!!!
晚安!