1、第四章串4.1 串类型的定义4.2 串的表示和实现4.3 串的模式匹配算法4.1 串类型的定义一、串的定义二、串的抽象数据类型的定义如下一、串的定义串(string)(或字符串),是由零个或多个字符组成的有限序列。一般记为s=a1a2a3an (n0)其中, s是串名,单引号括起来的字符序列是串的值;ai可以是字母,数字或其他字符;串中的字符个数称为串的长度;零个字符的串称为空串(Null string),其长度为零;串中任意个连续的字符组成的子序列称为该串的子串;包含子串的串相应地称为主串;字符在序列中的序号为该字符在串中的位置;子串在主串中的位置则以子串的第一个字符在主串中的位置来表示;由
2、一个或多个空格字符组成的串称为空格串;例:串a,b,c,d,e五个串如下:a=very difficult;b=; c=;d=very;e=difficult;串a的长度为14;串b是长度为3的空格串;串c是空串,长度为0;串d和e是串a的子串,串d在串a中的位置是1,串e在串a中的位置是6。 串相等 :当且仅当两个串的值相等,即只有当两个串的长度相等,并且各个对应位置的字符都相等时才相等; 空串是任意串的子串; 任意串又是自己的子串注意:串值必须用一对单引号括起来,但单引号本身不属于串;空串与空白串截然不同,空串不包含任何字符。二、串的抽象数据类型的定义如下:ADT String 数据对象:
3、D ai|ai CharacterSet,i=1,2,.,n, n0 数据关系:R1 | ai-1, aiD,i=2,.,n 基本操作 :StrAssign (否则返回 FALSE。表示空串,空串的长度为零。StrCompare (S, T)初始条件: 串 S 和 T 存在 。操作结果: 若S T,则返回值 0;若S = T,则返回值 = 0;若S 0StrLength (S)初始条件:串 S 存在。操作结果:返回 S 的元素个数,称为串的长度。Concat ( m = StrLength(T); i = pos;while ( i = n-m+1) SubString (sub, S, i, m);if (StrCompare(sub,T) != 0) +i ;else return i ; / while / ifreturn 0; / S中不存在与T相等的子串 / Index