第四章 串

来源:互联网 发布:python入门 知乎 编辑:程序博客网 时间:2024/06/04 18:49

一、的概念

n个字符的有限序列记为:S=‘a1a2……an’(n>=0)

 

S是串名,用单引号括起来的字符序列式串的值

串中字符个数n称为串的长度

长度为0的串称为空串

如:串S=‘This is a string.’‘This’是一个子串,‘string’也是一个子串

求子串在串中的起始位置称为子串定位模式匹配

 

二、基本操作

ASSIGN (S,T) 赋值操作:设S,T为串名,将T的值赋给S

CREATE (S, ss) 赋值操作,如:CREATE(S,‘abc’)则S=‘abc’

EQUAL (S,T) 判等函数,返回真或者假

LENGTH (S) 求长度函数

CONCAT (S,T) 联接函数 如:S= ‘xyz’ T=‘abc’则CONCAT (S,T)=‘xyzabc’

                            CONCAT (S,T)<> CONCAT (T ,S)

SUBSTR(S,start,len)求子串函数,取从S中第start个字符起,长度为len的字符序列。

                       1<=start<=length(s)+1

                       0<= len<=length(s)-start+1

INDEX (S,T) 定位函数,若主串S中存在和T相等的子串,则函数值为S中第一个等于T的子串在主串S中的位置;否则,函数值为0

REPLACE (S,T,V) 置换操作,以串V替换在串S中与T相等的所有子串,如:S=‘BBABBABBA’ T=’AB’ V=’C’ 结果为:S=‘BBCBCBA’

 

三、串的存储结构

1.顺序存储结构

CONST maxlen=串被确认的最大长度

TYPE strtp=RECORD

          ch:PACKED(紧缩型,节省空间)ARRAY[1…maxlen] OF char;

          curlen:0……maxlen

         END;

 

2.链式存储结构

CONST chunksize=用户定义的结点大小;

TYPE pointer=↑chunk

     chunk=RECORD

          Oh:ARRAY [1…chunksize] OF char;

          next:pointer

         END;

     Linkstringtp=RECORD

                 head,tail:pointer;

                 length:integer

               END;

原创粉丝点击