- 25
- 0
- 约9.41千字
- 约 45页
- 2019-08-04 发布于山东
- 举报
第五章 串 5.1 串的基本概念 5.2 串的存储结构 5.3 串的基本运算 5.4 模式匹配 5.5 串在文本编辑中的应用 5.1 串的基本概念 串(String):由零个或多个字符组成的有限连续序列,一般记为 S= ‘s1s2…s n ’ 空串(null string):由零个字符组成的串 空格串:由一个或多个空格组成的串 子串:字符串中任意个连续的字符构成的子序列 主串:包含子串的字符串 位置:一个字符在序列中的序号称为该字符在串中的位置 两串相等:两个字符串的长度相等且各对应位置上的字符都相同 串变量:形如下面语句 S=‘12345’ 是一个合法的附值语句,其含义是把串值附给串变量,S是串变量名,字符序列12345是串值 事例:串a=‘BAO’, b=‘DING’,c=‘BAODING’,d=‘BAO□DING’,则: (1) a,b,c,d的串长分别为3,4,7, 8 (2) 串a,b都是串c,d的子串,其在主串c中的位置分别为1和4, 在主串d中的位置分别为1和5 (3) c不等于d 5.2 串的存储结构 串的静态存储结构 :将串定义成字符型数组,串的存储空间分配在编译时完成,不能更改 串的动态存储结构 :串的存储空间在程序运行时动态分配 ,分为 5.2.1 串的静态存储结构 串的顺序存储结构表示 #define MAXSTRLEN 256 /*定义串允许的最大字符个数*/ struct string { char ch_string[MAXSTRLEN]; /* MAXSTRLEN为串的最大长度*/ int len; /*串的实际长度*/ }SString 顺序存储结构的两种存储方式 紧凑格式:在存储单元中尽量的多存储字符 非紧凑格式 :一个存储单元只存放字符串的一个字符,存储中多余的空间置空不用 事例:S=‘Love China’ 二者比较:紧凑格式空间利用率高,而非紧凑格式对串中字符的处理效率低。 串的静态存储结构的两个缺点: 需要预先定义一个串允许的最大字符个数,当该值估计过大时,存储密度就会降低,较多的空间就会被浪费掉 由于限定了串的最大字符个数,使串的某些操作 5.2.2 串的动态存储结构 链式存储结构:包含字符域和指针域的结点链结结构 事例:S=‘Study Data Structures’ 块链存储结构:每个节点存放若干个字符,提高空间利用率 堆结构的存储方式 :系统将一个空间足够大、地址连续的存储空间作为串值的可利用空间;建立一个新串时,系统就从这个可利用空间中划分出一个大小和串长度相等的空间存储新串的串值;每个串的串值各自存储在一组地址连续的存储单元中 串的堆结构存储表示 typedef struct { char *ch; /*若是非空串,则按串长分配存储区,否则ch为NULL*/ int length; /*串长度*/ }HString; 算法5.1:堆结构的存储方式实现串插入操作 Status StrInsert(HString S,int pos,HString T) { if(pos1||posS.length+1) return ERROR; /*pos的值不合法*/ if(T.length) /*T非空,则进行下列操作*/ { /*重新分配存储空间,插入T*/ if(!(S.ch=(char *) realloc(S.ch,(S.length+T.length)*sizeof(char)))) exit(OVERFLOW); for(i=s.length-1;i=pos-1;--i) S.ch[i+T.length]=S.ch[i]; /*插入位置之后所有的元素后移*/ /*在pos位置插入串T*/ S.ch[pos-1..pos+T.length-2]=T.ch[0..T.length-1]; S.length+=T.length; /*修改串的长度*/ } //end if(T.length) return OK; } 5.3 串的基本运算5.3.1 串的基本运算 假设有以下串: s1=‘I am a student’ s2=‘child’ s3=‘student’ 基本运算 串赋值A
您可能关注的文档
- 数据结构与算法-第1章 数据库基本原理.ppt
- 数据结构与算法-第1章(中科大) 基础算法思想.ppt
- 数据结构与算法-第2章 SQL Server概述.ppt
- 数据结构与算法-第2章 简单数据结构.ppt
- 数据结构与算法-第3章 创建和管理数据库.ppt
- 数据结构与算法-第3章 复杂数据结构(中科大).ppt
- 数据结构与算法-第3章 复杂数据结构.ppt
- 数据结构与算法-第4章 创建数据类型和表.ppt
- 数据结构与算法-第5章 实现数据完整性.ppt
- 数据结构与算法-第6章 数组与广义表.ppt
- 25-26学年政治(部编版)选择性必修第二册课件:第1单元 周清1 民法中的人身权及财产权.pptx
- 25-26学年政治(部编版)选择性必修第二册课件:1.4.1 权利保障 于法有据.pptx
- 2025北京丰台区高二(上)期中地理(A卷)含答案.docx
- 2025北京三帆中学初三(上)开学考英语试题含答案.docx
- 2025北京一零一中初三9月月考语文试题含答案.docx
- 2025北京海淀区初三(上)期中道法试题含答案.docx
- 2025北京丰台区高一(上)期中政治(A卷)含答案.docx
- 25-26学年政治统编版必修4课件:3.3 唯物辩证法的实质与核心.pptx
- 25-26学年政治统编版必修4课件:7.2 正确认识中华传统文化.pptx
- 湖北省部分高中2026届高三上学期二模联考 历史试卷.docx
最近下载
- 上海市黄浦区2024-2025学年八年级上学期期末数学试卷(含答案).pdf VIP
- 69095419_A-Aquaeco直流变频水地源(热泵)机组安装操作维护手册20230310-A.pdf VIP
- 部编教材五年级下册语文教案(全册).pdf VIP
- 2022小班长年终总结范文(系列5篇).docx VIP
- 广东省深圳市宝安区2022-2023学年六年级上学期质量监测用卷科学期末试卷.docx VIP
- 做好应急保电预案(3篇).docx
- 哈工大计算机组成原理第六章课件唐朔飞老师.ppt VIP
- 人教版六年级上册语文期末考试卷绝对自己编的_有用的老师可以下载_免费.doc VIP
- 探秘坚果与干果中的隐匿威胁:真菌毒素污染及风险深度剖析.docx VIP
- 森林防火工程技术标准范文.docx VIP
原创力文档

文档评论(0)