数据结构与算法第三章2012.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构与算法第三章2012,数据结构与算法,数据结构与算法分析,数据结构与算法pdf,数据结构与算法java,c数据结构与算法,数据结构与算法分析c,数据结构与算法视频,python数据结构与算法,数据结构与算法java版

3.1 字符串抽象数据类型 3.2 字符串的存储结构和类定义 3.3 字符串运算的算法实现 3.4 字符串的模式匹配 3.1字符串抽象数据类型 3.1.1 基本概念 3.1.2 String抽象数据类型 3.1.1 基本概念 字符串:由0个或多个字符的顺序排 列所组成的复合数据结构,简称 “串”。 串的长度:一个字符串所包含的字 符个数。 空串:长度为零的串,它不包含任 何字符内容。 3.1.1.1字符串常数和变量  字符串常数 例如: \n  字符串变量 3.1.1.2 字符  字符(char) :组成字符串的基本单位。  在C和C++中  单字节(8 bits )  采用ASCII码对128个符号(字符集 charset )进行编码 3.1.1.3 字符的编码顺序  为了字符串间比较和运算的便利,字符 编码表一般遵循约定俗成的 “偏序编码 规则”。  字符偏序:根据字符的自然含义,某些 字符间两两可以比较次序。  其实大多数情况下就是字典序  中文字符串有些特例,例如 “笔划”序 3.1.1.4 C++标准string  标准字符串:将C++的string.h函 数库作为字符串数据类型的方案。  例如:char S[M];  串的结束标记:\0  \0是ASCII码中8位BIT全0码,又称 为NULL符。 3.1.1.4 C++标准string(续)  1. 串长函数 int strlen(char *s);  2. 串复制 char *strcpy(char *s1, char*s2);  3.串拼接 char *strcat(char *s1, char *s2);  4 .串比较 int strcmp(char *s1, char *s2); 3.1.1.4 C++标准string(续)  5 .输入和输出函数  6 .定位函数 char *strchr(char *s, char c);  7 .右定位函数 char *strrchr(char *s, char c); 3.1.1.4 C++标准string(续) 3.1.2 String抽象数据类型  字符串类(class String ): 不采用char S[M]的形式  而采用一种动态变长的存储结构。 class String //字符串类 //它的存储结构和实现方法使用了C++标准string(简称标准 串), //为了区别,类String所派生创建的实例对象,简称‘本串’,或 ‘实例串’ //在程序首,要#include string.h和#include iostream.h及 // 及#include stdlib.h,以及#include assert.h { //1.字符串的数据表示: //字符串S 通常用顺序存放,用数组S[]存储,元素的类型为 char //字符串为变长,使用变量size记录串的当前长度 // 2.使用变量访问字符串: //字符串变量能参与运算,例如S1 + S2表示两个字符串首尾 拼接在一起 //用数组str[]存储字符串,在内部可以用str[i]访问串的第i个 字符, // 3.字符串类的运算集:请参看下面的成员函数 private: char *str; //私有的指针变量,用于指向存储向量str[size+1] int size ;//本串的当前实际长度 public: String(char *s = “”); //创建一个空的字符串 String(char *s); // 创建新字符串,并将标准字符串s拷贝为初值 String(const String copy);//拷贝构造函数 ~String() // 销毁本串,从计算机存储空间删去本串 //下面是算子的定义,包括赋值算子= 拼接算子+ 和比较算子 等 const String operator= (const char *s ); //赋值操作=,标准串s拷贝到本串 const String operator= (const String s ); //赋值操作=,串s复制到本串 String operator+ (char *s );//拼接算子+,本串拼接标准串s String operator+ (String s

文档评论(0)

gooddoc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档