- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
抽象数据类型与运算
字符串 —— 抽象数据类型与运算 2007/03/26 字符串基本概念 字符串简称串,是一种特殊的线性表,其特殊性主要在于表中的每个元素是一个字符。 一个串可以记作s=s0s1…sn-1(n ≥ 0),其中s是串的名字,双引号括起来的字符序列s0s1…sn-是串的值。 例如: A = 123B = ABBABBCC = BBD = BB E = C语言中定义的字符串 存储结构: 字符数组 + 头指针 + ‘\0’ 操作: string.h ?char *strcpy(char *dst, char *sorc) int strcmp(char *str1, char *str2);? char* strcat(char *dest, const char* sorc,size); char* strstr(char *str, const chat *strSearch); size_t strlen(const char* str); gets(char *); puts(char*); … C语言中定义的字符串 —— 操作的实现 字符串的复制: char *strcpy(char *d, char *s) { //这个程序的毛病是,如果字符串s比字符串d要长, //这个程序没有检查拷贝出界,没有报告错误。 //可能会造成d的越界 int i =0; while (s[i] != \0) { d[i] = s[i]; i++; } d[i] = \0; return d; } 字符串的比较 int strcmp( char *d, char *s) { int i =0; do { if (d[i] s[i]) return 1; else if (d[i] s[i]) return -1; i ++; } while (s[i] != \0 d[i] != \0 ); return 0; } 通过C语言建构字符串的ADT 顺序存储结构定义 通过C语言建构字符串的ADT —— 创建空顺序串 PSeqString createNullStr_seq( int m ) { PSeqString pstr = (PSeqString)malloc(sizeof(struct SeqString)); if (pstr != NULL) { pstr-c = (char* )malloc(sizeof (char)*m); if (pstr-c != NULL) { pstr-n = 0; pstr-MAXNUM = m; return (pstr) } else free (pstr); } printf(Out of space!!\n); return NULL; } 通过C语言建构字符串的ADT —— 创建空顺序串 通过C语言建构字符串的ADT —— 匹配子串 int index(PSeqString t,PSeqString p) 求p所指的串在t所指的串中第一次出现时,p所指串的第一个元素在t所指的串中的序号(下标+1)。 算法: 用p中的字符依次与t中的字符比较, 如果:t0 = p0,t1 = p1,…,tm-1 = pm-1,则匹配成功,返回字符t0的位置。 否则: t0 ++; 从p0开始新一轮比较。 直到:匹配成功。或:strlen(p)strlen(t0); 通过C语言建构字符串的ADT —— 朴素子串匹配法 通过C语言建构字符串的ADT —— 朴素子串匹配法 从特征向量到KMP算法 模板串P开头的任意个字符,把它称为前缀子串。p0p1p2…pm-1 在P的第i位置的左边,取出k个字符,称为i位置的左子串。pi-k+1... p
您可能关注的文档
- 报表软件FineReport各类函数大全.doc
- 抽样方法的比较研究_卢宗辉.pdf
- 抽样方法与产品质量管理定稿.doc
- 抽样检验_二_王泰俭.pdf
- 抽样检验培训试题.docx
- 抽样检验理论在SAP R_3系统中的应用.pdf
- 抽样统计的基本概念-111.ppt
- 1.4.角平分线(一) 说课稿.doc
- 1.5 第2课时 “边角边”与线段的垂直平分线的性质.ppt
- 2015年高考第一轮复习数学:9.4 两个平面平行、垂直.doc
- 2025年高考化学三轮冲刺:必背知识点考点提纲.docx
- Unit 7 A day to remember 第3课时 Section A (Grammar Foucs)(导学案) 七年级英语下册 (人教版2024).docx
- Unit 6 Rain or shine 第3课时 Section A (Grammar Focus)(导学案) 七年级英语下册 (人教版2024).docx
- 多人合伙开店协议书2025年通用.docx
- 家政工作人员劳动合同书范本2025年通用.docx
- 天津二手房买卖合同书范文2025年通用.docx
- 女方出轨离婚协议书书模板(2025版).docx
- 大学教师聘用合同书书范本(2025版).docx
- 大学教师就业协议书书范本2025年通用.docx
- 大学生顶岗实习协议书书范文(2025版).docx
文档评论(0)