- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 节 串 数据结构课件.ppt
第4章 串 ;4.1 串的基本概念 ;下面给出一些串的例子。
a=speak English
b=string
c=speak
d=ing
e=
f=
其中a、b、c、d的长度分别是13、6、5、3;c是a的子串;d是b的子串;e是空白串,长度是1;f是空串,长度是0。 ; 串与其他数据一样,也有两种串可供使用,一种是串常量,一种是串变量。串常量具有固定值,而串变量的值是可以改变的,同样,我们必须用标识符命名串变量。例如在C语言中字符串可以定义为
Char * 变量名;
或 Char 变量名[下标数]; ;4.2 串的存储结构 ; 这样,字符数组名给出了串在内存中的开始地址,串值末尾的结束标记\0标记了串在内存的结束位置。当自己定义串的顺序存储结构时,设置串的长度参数确定串的长度的方法更为常用。为了算法实现方便,或为了兼容两种串的长度表示方法,也可同时使用两种方法来表示串的长度。 ;4.2.2 串的堆存储
堆分配存储结构的特点是:仍以一组地址连续的存储单元存放串的字符序列,但其存储空间是在算法执行过程中动态分配得到的。在C语言中,存在一个称之为“堆”的自由存储区,并由C语言的动态分配函数malloc(?)和free(?)来管理。利用函数malloc(?)为每一个新产生的串分配一块实际需要的存储空间,若分配成功,则返回一个指针,指向串的起始地址。串的堆分配存储结构如下: ;typedef struct
{ char *ch;
int length;
} Hstring ;
其中,ch为指针变量,也是字符数组名,若ch为非空串,则按串长分配存储区,否则ch为NULL;length表示串的长度;Hstring是堆类型标识符。
由于堆分配存储结构的串既有顺序存储结构的特点,在操作中又没有串长的限制,显得很活,因此在串处理的应用程序中常被选用。 ;4.2.3 串的链表存储
由于各种串运算与串的存储方式有密切关系,因此若要随机存取串中第K个字符,顺序存储显得比较方便;若要对串进行插入、删除等操作,顺序存储就显得比较繁琐,而链表存储则显示出明显的优越性。
链表存储是把可利用的存储空间分成一系列大小相同的结点(若干连续的存储单元),每个结点含有两个域:data域和next域。data域用来存放字符;next域用来存放指向下一个结点(首地址)的指针。结点的大小是指data域中可以存放字符的个数,next域的大小则取决于寻址的范围。 ; 例如,设链表中每个结点只存放一个字符,则在C语言中可使用如下说明:
struct list
{ struct list *next; /*指向下一个结点的指针*/
char data; /*在一个结点中存放1个字符*/
} *point; /*point为结构类型的指针,指向第一结点*/ ;图4.1 结点大小为1的链表存储结构 ;如果链表中每个结点可存放4个字符,则结点结构为:
struct list
{ struct list *next;
char data[4]; /*在一个结点中可存放4个字符*/
} *point; ;图4.2 结点大小为4的链表存储结构 ;4.2.4 串变量的存储映像
串变量的存储映像是建立了串名和串值之间对应关系的符号表。表中的项目可根据实际需要来设置,以能区分出串并能方便地存取串值为原则。
例如,有3个串:
a=Speak;
b=English;
c=String; ;假定一个单元仅存放1个字符,其串值存储如图4.3所示。 ; 若符号表的每一行包含有串名和串值的始、尾地址,如表4.1(a)所示,则任意一个串的长度等于尾地址与始地址之差加1。当然也可以直接将串的长度值存放到符号表中,这时不必设立尾指针,如表4.1(b)所示,而串值的存储方式如图4.3所示。
对于链表存储串值的存储方式,若要建立串变量的符号表,则只要存入一个链表的表头指针就可以了。 ;表4.1 符号表示例 ;4.3 串 的 运 算 ; 2) 字符串的联接
strcat(string1,string2) 将源串string2的值联接到目标串string1的尾部,返回指向string1的指针。此时string1的值为两个字符串的联接值。例:string1为fgh,string2
您可能关注的文档
- 第4章 节 普通注射模具4.4 《塑料成型工艺与模具设计》课件.ppt
- 第4章 节 普通注射模具4.5 《塑料成型工艺与模具设计》课件.ppt
- 第4章 节 普通注射模具4.7 《塑料成型工艺与模具设计》课件.ppt
- 第4章 节 普通注射模具4.8 《塑料成型工艺与模具设计》课件.ppt
- 第4章 节 普通注射模具4.9 《塑料成型工艺与模具设计》课件.ppt
- 第4章 节 服务器控件 《Web高级程序设计教程》电子教案.ppt
- 第4章 节 机械加工表面质量 机械制造工艺与夹具 .ppt
- 第4章 节 桩基础-1 基础工程课件(建工).ppt
- 第4章 节 桩基础-2 基础工程课件(建工).ppt
- 第4章 节 模拟电路实验与综合设计 PROTEUS——电子线路设计、制版与仿真 PPT.ppt
- 第4章 节 互换的定价 金融工程课件.ppt
- 第4章 节 交互式特殊效果工具 CorelDRAW图形设计案例教程课件.ppt
- 第4章 节 交流绕组 《电机学(第4版)》课件.pptx
- 第4章 节 人口增长、人力资源开发与经济发展 发展经济学讲义(2011版).ppt
- 第4章 节 任务4.1 起动机的类型及结构 汽车电器设备原理与维修实务 PPT.ppt
- 第4章 节 企业形象 .ppt
- 第4章 节 会计确认与会计计量原理 会计学原理.ppt
- 第4章 节 传输介质与连接器 《计算机网络及应用》电子教案.ppt
- 第4章 节 使用CSS控制背景图像 CSS+DIV网页样式与布局从入门到精通课件.ppt
- 第4章 节 使用修改命令编辑对象 AutoCAD2007计算机绘图课件.ppt
最近下载
- 2022版英语课程标准考试题库及答案1.docx
- TZS 0678—2025《生物安全实验室工作人员本底血清样本管理规范》(水印版).pdf VIP
- GB28050 -2025《预包装食品营养标签通则》解读.pptx VIP
- 2025年石墨烯 固态电池.pptx VIP
- 蛋白质似药物的PEG化学修饰.ppt VIP
- 义务教育版(2024)五年级全一册信息科技 第1课 生活处处有算法 教案.docx VIP
- 2蛋白质药物的分离纯化与化学修饰.pptx VIP
- GJB质量经济性分析报告.docx VIP
- 【高中物理竞赛专题大全】竞赛专题6狭义相对论45题竞赛真题强化训练解析版.pdf VIP
- 英威腾CHV190起重机专用变频器说明书V1-01.pdf VIP
文档评论(0)