一、串的定义
串是由零个或多个字符组成的有限序列,又称字符串。
二、串的相关概念
- 串的长度: 串中包含的单字符个数。
- 空串: 零个字符组成的串,其长度为0,可以用希腊字母“Φ”表示;
空格串: 只包含空格的串,其长度不为0,而且可以不止一个空格。 - 子串: 以一个串为主串,由其中任意个数的连续字符组成的子序列,称为该串的子串;
子串的位置: 子串的第一个字符在主串中的序号。 - 串的比较: 通过比较组成串的字符个数和编码来实现。当两个串的长度、各个位置的对应字符都相同,才认为它们相等。
假设给定两个串:s = “a1a2……an”,t = “b1b2……bm”,当满足以下条件之一时,认为s < t:
① n < m,且ai = bi(i = 1,2,……,n);
② 存在某个k ≤ min(m, n),使得ai = bi(i = 1,2,……,k-1),ak < bk。
三、串的存储结构
- 顺序存储结构: 用一组地址连续的存储单元来存储串中的字符序列;
- 链式存储结构: 与线性表类似,用不连续的存储单元存储字符。
注意: 若一个结点只存储一个字符,会存在很大的空间浪费(地址域一般占用至少4字节的空间)。因此,可以合并多个字符为一个结点(若最后结点未被占满,可以自定义特殊字符进行补全)。