参考文献:
[1]张光河.数据结构——python语言描述[M]. 北京:人民邮电出版社,2018,161-185.
[2]
1. 串
字符串通常被称为串。
- 顺序存储
- 链式存储
- 模式匹配
1.1 串的基本概念
- 长度:字符个数
- 空串:
string=""
,长度为0 - 空格串:
stringBlank=" "
,仅含一个空格,长度为1 - 字串:串中任何连续字符组成
- 主串:包含子串b的串,称为b的主串
- 真子串:串的所有字串,除了自身以外
- 字串的位置:子串中第一个字符的位置
- 串相等:长度和位置相等
串的抽象数据类型
- a=stringDest , b=stringSrc
操作 | 说明 |
---|---|
InitString(string) | 初始化串 |
StringAssign(stringDest,stringSrc) | 将后一个的字符序列赋值给第一个 |
IsEmptyString(string) | 若为空返回true,反之false |
StringCopy(a,b) | 由B复制得到a |
StringCompare(a,b) | 若a>b,返回1;等于,0;小于,-1 |
StringLength(string) | 返回string长度 |
ClearString(string) | 清空string,变为空串 |
StringConcat(a,b) | 将b连接到a后面,新的a变为以前的a+b |
IndexString(a,b,iPos) | 若a,b存在相同的字串,则返回它在a中第iPos 个字符之后第一次出现的结果;否则iPos=-1,并返回-1. |
StringDelete(string,iPos,length) | 从string第ipos位置,删除指定的length长度的字串 |
StringInsert(a,ipos,b) | 在a的第ipos位置后插入b |
StringReplace(a,b,stringtemp) | 串a中的b串被stringtemp代替 |
1.2 串的顺序存储及运算
初始化、是否为空、创建串、串连接、获取子串
## 初始化串
def __init__(self):
self.MaxStringSize=256
self.chars=""
self.length=0
## 判断是否为空
def IsEmpty(self):
if self.length == 0 :
IsEmpty=True
else:
IsEmpty=False
return IsEmpty
## 创建串
def CreateString(self):
stringSH=