1.串
1.1串的定义
串(string)是由零个或多个字符组成的有限序列,又名字符串。
注意:空串和空格串不同
串的比较
ASCII编码:7位二进制表示一个字符,总共128个字符。
扩展ASCII编码:8位二进制表示一个字符,总共256个字符。
Unicode编码:16位二进制表示一个字符,总共65536个字符,为了与ASCII编码兼容,前256个字符相同。
1.2串的抽象数据类型
Data
串中元素仅有一个字符组成,相邻元素具有前驱后继关系。
Operation
StrAssign(T,chars); 生成字符串,其值等于字符串常量chars
StrCopy(T,S); 复制串S得到串T
ClearString(S); 清空
StringEmpty(S); 判断是否为空
StrLength(S); 计算串的长度
StrCompare(S,T); 比较两个字符串
Concat(T,S1,S2); 用T返回由S1和S2联接成的新串
SubString(Sub,S,pos,len); 用Sub返回串S的第pos个字符起的长度为len的子串
Index(S,T,pos); 主串S中是否存在串T值相同的子串,若是,返回它在主串中第pos个字符之后第一次出现的位置
Replace(S,T,V); 替换
StrInsert(S,pos,T); 插入
StrDelete(S,pos,len); 删除
......
1.3串的存储结构
1.3.1串的顺序存储结构
一组地址连续的存储单元来存储串中的字符序列,一般使用定长数组。
1.3.2串的链式存储结构
不如顺序存储灵活,性能略差。
1.4模式匹配算法
朴素的模式匹配算法
KMP模式匹配算法(克努特-莫斯里-普拉特算法)
2.树
2.1树的定义
树(Treeÿ