数据结构——字符串(未完)
2017-08-03 17:11
120 查看
1、相关概念
串(string):由零个或多个字符组成的有限序列,又称字符串。一般记作 s = “a1,a2……an” (n>0),其中,s为字符串的名称,其值是用双引号括起来的字符序列a1,a2……an。
串的长度:串中的字符数目n
空串:两个字符的串,其长度为0,可用两双引号“”“”或希腊字母Φ表示。
特殊的串
空格串:只包含空格的串,不同于空串,其长度不为0。
子串与主串:串中任意个数的连续字符组成的子序列称为该串的子串,相应地,包含子串的串称为主串。子串在主串中的位置就是子串的第一个字符在主串中的序号。
2、串的比较
串的比较是通过组成串的字符之间的编码来进行的,而字符的编码指的是字符在对应字符集中的序号。 即:从第一个字符开始,比较它们的编码值的大小,直到有一方大于另一方为止。常用编码
标准的ASCII编码,由7位二进制数表示一个字符,总共可以表示128个字符。Unicode编码,比较常用的是由16位的二进制数表示一个字符,Unicode的前256个字符与ASCII码完全相同。
比较步骤:
给定两个串:s=”a1a2……an”,t=”b1b2……bm”。当满足以下条件之一时,s < t。
1. n < m, 且 ai=bi( i = 1, 2, ……, n)。
2. 存在某个k < min(m, n),使得ai=bi (i=l, 2, ……, k—1), ak < bk。
3、抽象数据类型
串的操作中更加注重对子串的操作,而不是对于单个字符。ADT 串(string) Data 串中元素仅由一个字符组成,相邻元素具有前驱和后继关系。 Operation StrAssign(T, *chars): 生成一个其值等于字符串常量chars的串T。 StrCopy(T, S): 串S存在,由串S复制得串T。 ClearString(S): 串S存在,将串清空。 StringEmpty(S): 若串S为空,返回true,否则返回false。 StrLength(S): 返回串S的元素个数,即串的长度。 StrCompare(S, T): 若S>T,返回值>0,若S=T,返回0,若S<T,返回值<0。 Concat(T, S1, S2): 用T返回由S1和S2联接而成的新串。 SubString(Sub, S, pos, len): 串S存在,1≤pos≤StrLength(S), 且0≤len≤StrLength(S)-pos+1,用Sub返 回串S的第pos个字符起长度为len的子串。 Index(S, T, pos): 串S和T存在,T是非空串,1≤pos≤StrLength(S)。 若主串S中存在和串T值相同的子串,则返回它在主串S中 第pos个字符之后第一次出现的位置,否则返回0。 Replace(S, T, V): 串S、T和V存在,T是非空串。用V替换主串S中出现的所有 与T相等的不重叠的子串。 StrInsert(S, pos, T): 串S和T存在,1≤pos≤StrLength(S)+1。 在串S的第pos个字符之前插入串T。 StrDelete(S, pos, len): 串S存在,1≤pos≤StrLength(S)-len+1。 从串S中删除第pos个字符起长度为len的子串。 endADT
4、串的存储结构
4.1 串的顺序存储结构
用一组地址连续的存储单元来存储串中的字符序列的。按照预定义的大小,为每个定义的串变量分配一个固定长度的存储区。一般是用定长数组。‘\0’来表示串值的终结。4.2 串的链式存储结构
一个结点可以存放一个字符或者多个字符,最后一个结点若是未被占满时,可以用#或其他非串值补全。相关文章推荐
- 数据结构作业——寻人启事(字符串哈希)
- 数据结构实验4-栈与字符串
- 3、数据结构——字符串
- c语言 数据结构实现之字符串
- Java之数据结构基础、线性表、栈和队列、数组和字符串,树—学习笔记
- 数据结构思维导图——第四章:字符串和多维数组
- 数据结构——算法之(028)( 寻找其中的一个子字符串个数)
- 数据结构之数组和字符串的反转java实现
- C++数据结构之字符串的BF算法
- Java数据结构之字符串模式匹配算法---KMP算法
- 数据结构——算法之(010)( 字符串的左旋转操作)
- 数据结构:(1)字符串
- PJLIB库基础框架-数据结构之字符串的使用
- 数据结构之字符串
- python---数据结构与数据类型,list,dict,tuple,排序sort,比较cmp,字符串模版
- 数据结构通过链栈实现字符串中心对称匹配
- 数据结构之字符串反转
- [PY3]——内置数据结构(3)——字符串及其常用操作
- 数据结构之字符串
- 数据结构与算法 - 两个指针搞定字符串操作