- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章串的定义
一、定义: 字符串是 n ( ? 0 ) 个字符的有限序列, 记作 S : “c1c2c3…cn” 其中,S 是串名字 “c1c2c3…cn”是串值 ci 是串中字符 n 是串的长度。 例如, S = “Tsinghua University” 字符串抽象数据类型定义 ADT String { 数据对象:D={ai|ai CharacterSet, i=1,2…,n,n≥0} 数据关系:R1={ai-1,ai|ai-1,ai D,i=2,…,n} 基本操作: StrAssign(T,chars)生成字符串T StrCopy(T,S)复制字符串S StrEmpty(S)判断S是否为空串 StrCompare(S,T)比较字符串S和T StrLength(S)求字符串S长度 ClearString(S)清空字符串S Concat(T,S1,S2)连接字符串S1和S2 SubString(Sub,S,pos,len)求S长度为len、位置为pos的子串 Index(S,T,pos)求子串在主串中的位置 Replace(S,T,V)在S中用子串V替换子串T StrInsert(S,pos,T)在S中插入子串T StrDelete(S,pos,len)在S中删除长度为len的子串 DestroyString(S)销毁串S } 二、串的表示和实现 1. 定长顺序存储表示: 用一组地址连续的存储单元存储串值的字符序列。 #define MAXSTRLEN 255 typedef unsigned char SString[MAXSTRLEN+1];//0号单元存串长 (1)串连接:串的联接算法中需分三种情况处理: Status Concat(SString T,SString S1,SString S2) { //如果连接后的串过长则截断 if (S1[0]+S2[0]=MAXSTRLEN) {//未截断 T[1..S1[0]]=S1[1..S1[0]]; T[S1[0]+1..S1[0]+S2[0]]=S2[1..S2[0]]; T[0]=S1[0]+S2[0]; uncut=TRUE; } else if (S1[0]MAXSTRLEN) {//截断 T[1..S1[0]]=S1[1..S1[0]]; T[S1[0]+1..MAXSTRLEN]=S2[1..MAXSTRLEN-S1[0]]; T[0]=MAXSTRLEN; uncut=FALSE; } else {//截断(仅截取S1串) T[0..MAXSTRLEN]=S1[0..MAXSTRLEN]; uncut=FALSE; } return uncut; }//Concat (2)求子串: Status SubString (SString Sub, SString S, int pos, int len){ if (pos1 || posS[0] || len0 || lenS[0]-pos+1) return ERROR; Sub[1..len]=S[pos.. pos+len-1]; Sub[0]=len; return OK; }//SubString 使用顺序存储结构过程中可能出现串长度超过数组上限,经过截断的串已经不完整,克服这个问题可使用动态分配串值的存储空间。 2. 堆分配存储表示: 堆是操作系统中为进程分配的自由存储空间,在C语言中用malloc()和free()来管理。 存储结构: typedef struct { char *ch; int leng
您可能关注的文档
- 电梯论文2.doc
- 电路7.ppt
- 画频谱.doc
- 直放站题库.doc
- 石油类.doc
- 程浩.doc
- 空运.doc
- 窗函数法.doc
- 第02章_稀溶液的依数性.ppt
- 第07次课20110314溶液化学.ppt
- 全国4月高等教育自学考试电子商务法概论试题.doc
- 社会工作师《实务》绝密押题.docx
- 成都中医药大学继续教育学分登记办法成都中医药大学.docx
- 第二章-2.2.1-配方法-第1课时-根据平方根的意义解一元二次方程精品课件.pptx
- 第四章第二节国家战略与政策教学设计高中地理新人教版选择性必修三2022学年.docx
- 精品讲义小学数学四年级上册-第1讲-大数的认识一重难点讲练教师版.docx
- 第四章一元一次方程43用一元一次方程解决问题备课件七年级数学系列苏科版.ppt
- 简单的单位换算分米毫米PPT课件.pptx
- 第五章相交线与平行线复习与测试课件人教版数学七年级下册.pptx
- 精品解析浙江省宁波市2020-2021学年高三上学期期末语文试题解析版.docx
原创力文档


文档评论(0)