77范文网 - 专业文章范例文档资料分享平台

数据结构课件- 河南大学精品课程网 - 图文 -(2)

来源:网络收集 时间:2018-12-25 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

练习:设s =?I AM A STUDENT?, t =?GOOD?,

q=?WORKER?。求:

StrLength(s) =StrLength(t) =

144

SubString(s, 8, 7)=SubString(t, 2, 1)=

Index(s, ?A?)=Index(s, t)=

?STUDENT??O?3

0 (s中没有t!)

Replace(s, ?STUDENT?,q)=’I AM A WORKER?

再问:Concat(SubString(s,6,2), Concat(t,SubString(s,7,8))) =?见本章自测题,或见严题集4.3 ①

4.2串的表示和实现

首先强调:串与线性表的运算有所不同,是以?串的整体?作为操作对象,例如查找某子串,在主串某位置上插入一个子串等。

串有三种机内表示方法:

?定长顺序存储表示顺序存储

——用一组地址连续的存储单元存储串值的字符序列

?堆分配存储表示——用一组地址连续的存储单元存储串值的字符序列,但存储空间是在程序执行过程中动态分配而得。——链式方式存储

链式

?串的块链存储表示存储

定长顺序存储特点:用一组连续的存储单元来存放串,直接使用定长的字符数组来定义,数组的上界预先给出,

故称为静态存储分配。例如:

#define Maxstrlen 255 //用户可用的最大串长typedef unsigned char SString[ Maxstrlen+1 ];

SString s; //s是一个可容纳255个字符的顺序串。

注:

?一般用SString[0]来存放串长信息;

?C语言约定在串尾加结束符‘\\0?,以利操作加速,但不计入串长;?若字符串超过Maxstrlen 则自动截断(因为静态数组存不进去)。

实现方式:参见教材P73编程两例,两串连接和求子串讨论:想存放超长字符串怎么办?——静态数组有缺陷!

改用动态分配的一维数组——“堆”!

例:用顺序存储方式实现求子串函数SubString(&Sub, S, pos, len) 将串S中从第pos个字符开始长度为len的字符序列复制到串Sub中(注:串Sub的预留长度与S一样)

Status SubString(SString &sub, SString S, int pos, int len ){ if(pos<1 || pos>S[0] || len<0 || len>S[0]-pos+1)return ERROR; //pos不合法则告警Sub[1……len]=S[pos……pos+len-1];Sub[0]=len; return OK;}

s =? a1, a2, …….. , an?

poslenn=串长堆分配存储特点:仍用一组连续的存储单元来存放串,

但存储空间是在程序执行过程中动态分配而得。

思路:利用malloc函数合理预设串长空间。

特点:若在操作中串值改变,还可以利用realloc函数按新

串长度增加(堆砌)空间。约定:所有按堆存储的串,其关键信息放置在:

Typedef struct {

char *ch; // 若非空串,按串长分配空间; 否则ch = NULLint length; //串长度

}HString

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据结构课件- 河南大学精品课程网 - 图文&nbsp;-(2)在线全文阅读。

数据结构课件- 河南大学精品课程网 - 图文&nbsp;-(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/389806.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: