- 3
- 0
- 约6.43千字
- 约 54页
- 2019-08-29 发布于广东
- 举报
第5章 串和数组 5.1 串的定义和操作 5.2 串的表示和实现 5.3 正文模式匹配 5.4 正文编辑━串操作应用举例 本次课学习要点 一、串的定长顺序存储表示 二、串的堆分配存储表示 三、串的块链存储表示 (在存储结构的层面讨论串的操作) 一、串的定长顺序存储表示 如果利用C语言的串类型描述算法,可用一组连续的存储单元存放串的字符序列 ,并以‘\0’为结束标志。使用C语言的字符数组来存储字符串。如, char s[ ]=abc; //字符串的长度为3 char a[10]; //字符串最大串长为9 按这种串的表示方法实现的串的运算时,其基本操作为 “字符序列的复制” 串的实际长度可在这个预定义长度的范围内随意设定,超过预定义长度的串值则被舍去,称之为“截断” 串的定长顺序存储操作特点: void concat_sq(char s1[ ],char s2[ ],char t[ ]) { int j=0, k=0; while(s1[j]!=\0) t[k++]=s1[j++]; //复制S1 j=0; while(s2[j]!=‘\0’) t[k++]=s2[j++]; //接着复制S2 t[k]=\0; //增加结束符 } 例如:串的联接操作concat void main( ){ char s1[ ]=china; char s2[ ]=beijing; char t1[13]; // 顺序分配定长空间 concat(s1,s2,t1); coutt1endl; } 定长分配体现在调用程序 typedef struct { char *ch; // 若是非空串,则按串长分配存储区, // 否则ch为NULL int length; // 串长度 } HString; 二、串的堆分配存储表示 如果完全用伪码描述算法,可进行类型定义: 如果直接用C语言描述算法,可通过函数new和delete为用户进行串值空间的动态管理,为每一个新产生的串分配一个存储区,称串值共享的存储空间为“堆”。 本书采用这种方式。 这类串操作实现的常用思路: 先为新生成的串分配一个存储空间,然后进行串值的复制。 concat 操作 substring 操作 串的堆分配存储表示实现 void concat(char *s1, char *s2, char *t){ int i=0, j=0; t=new char[strlen(s1)+strlen(s2)+1]; // 为t分配堆空间 while((t[i]=s1[i])!=\0) i++; while((t[i]=s2[j])!=\0) { i++; j++; } } void main( ) { char *s1=china; char *s2=beijing; char *t1; //仅说明类型而不申请空间 concat(s1,s2,t1); coutt1endl; } 调用程序无需预先申请空间 void substring(char *sub, char *s, int pos, int len) { char *p; int k, slen=strlength(s); if (pos0||posslen-1||len0||lenslen-pos) ERRORMESSAGE(“参数不合法”); sub=new char[len+1]; //为sub分配堆空间 p=s+pos-1; k=len; while(k){ *sub++=*p++; k--; } *sub=\0; sub=sub-len; } 5.3 正文模式匹配 先前,曾介绍过串匹配(查找)的操作 INDEX (S, T, pos) 在实际应用中,串的匹配查找操作使用的机会很多,现专门讨论该算法。 使用串的有关操作实现了INDEX,但在效率上仍有改进的余地。 * * 串也可以看作是一种线性表,只是其操作通常是按成组的元素来进行的。数组可以认为是线性表在维数上的一种拓展。串和数组依然属于线性结构,但在存储结构的实现方面较线性表为复杂。 值得注意的是,串和数组是在高级
您可能关注的文档
最近下载
- 复星联合超越保无忧版长期住院医疗保险(费率可调)(互联网)条款.pdf
- 法律职业资格(主观题)真题及答案解析2025.docx VIP
- 复星联合超越保无忧版长期住院医疗保险(费率可调)(互联网)产品说明书.pdf
- JB∕T 5913-2017 电除尘器 阴极线.pdf
- 外国国有企业改革的启迪与借鉴.docx
- 只铁铁血短线VCD全文.pdf VIP
- 马戎讲民族问题课件.ppt VIP
- 2026届高考化学:实验大题规范作答实验大题规范作答15.实验题规范作答答案.docx VIP
- 合肥市2026届高三(一模)物理试卷(含标准答案).pdf
- 供应链数字化转型对企业绩效的影响研究--以海尔智家为例.pdf
原创力文档

文档评论(0)