数据结构篇_知识点板块_第四章串

  • 数据结构篇为本人考研时所写笔记,包括知识点和编程思想两大板块,笔记内容依据王道数据结构考研书所写,但比书本上知识更加生动形象,愿本篇章能对您有所帮助

四、串(字符串简称串)

  1. 串是由零个或多个字符组成的有限序列

  2. 串常量在程序中只能引用但不能改变其值,串变量取值可以改变

  3. 空串用⊘表示

  4. 空串是任意串的子串;任意串是自身的子串

  5. 子串在主串中的位置以子串的第一个字符在子串中位置来表示

  6. 串的逻辑结构和线性表极为相似,区别仅在于串的数据对象限定为字符集

  7. 串的存储结构:

① 顺序存储:

(1) 截断:超过预定义长度的串会被舍去

(2) 对于串长的表示:一般将数组的data[0]舍弃不存从data[1]开始存储,并且设立独立的变量len来存放串长度;故串的下标从1开始计数

② 堆存储(动态数组):

(1) 用malloc()和free()函数来完成动态存储,malloc()产生的串存储在堆中,若分配成功返回一个指向起始地址的指针,若分配失败则返回NULL

③ 块链存储:

(1) 每个结点可存放一个或多个字符(每个结点称为块)

(2) 当存放多个数组时结点占不满可以用“#”或“\0”等补上

(3) 若结点中存储的数据低于为4B的指针域的指针,则说该存储密度低,故一般采用存储4B数据的方法

  1. 串的应用举例:建立词索引表和文件编辑

  2. n为主串长,m为子串长,则串的朴素匹配最坏情况下需要比较字符的总次数为(n-m+1)*m

posted @ 2022-04-21 10:49  Oten  阅读(127)  评论(0编辑  收藏  举报