串
逻辑结构
串(string)是由零个或多个字符组成的有限序列。
是一种受限线性表。
串中任意多个连续字符组成的子序列称为子串。(与之对应的是主串)
子串在主串中的位置以子串的第一个字符在主串中的位置来表示。
物理结构
定长顺序存储
用一组地址连续的空间。
串的实际长度只能小于等于预定义的最大长度,超出的部分会被截断。
串长的两种表示方法:
- 用一个变量来记录,如length;
- 在末尾加一个'\0',此时串长是隐含值;
堆分配存储
用一组地址连续的空间,只不过这组空间是运行时动态分配的。
在c中,用malloc和free来管理这组空间。。
块链存储
用链表方式存储串值(每个元素只有一个字符)。
在实际实现中,每个结点可以存放多个字符,称为块,整个链表称为块链结构。
串的模式匹配
简单的暴力匹配
用两个计数指针i和j,分别指示主串和子串中待比较的字符位置。
从主串中每个字符开始依次与子串匹配。
时间复杂度为_O(mn)_。m和n分别为主串和子串长度。

浙公网安备 33010602011771号