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

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

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

例:用“堆”实现串插入操作(教材P75)

Status StrInsert ( HString &S, int pos, HString T ){

//在串S的第pos个字符之前(包括尾部)插入串T

if (pos<1||pos>S.length+1) return ERROR; //pos不合法则告警if(T.length){ //只要串T不空,就需要重新分配S空间,以便插入T

if (!(S.ch=(char*)realloc(S.ch, (S.length+T.length)*sizeof(char))

)) exit(OVERFLOW);

for ( i=S.length-1; i>=pos-1; --i ) //为插入T而腾出pos之后的位置

S.ch[i+T.length] = S.ch[i]; //从S的pos位置起全部字符均后移S.ch[pos-1…pos+T.length-2] = T.ch[0…T.length-1]; //插入T,略/0S.length + = T.length; //刷新S串长度

}return OK;

}//StrInsert

附:堆分配存储表示

Status StrAssign(HString &T, char *chars){

if (T.ch) free(T.ch);

for (i=0, c=chars; c; ++i, ++c); //求串长度if (!i) {T.ch = NULL; T.length = 0;}else{直到终值为“假”停止,串尾特征是‘/0?=NUL=0if (!(T.ch = (char*)malloc(i*sizeof(char))))exit(OVERFLOW);T.ch[0..i-1] = chars[0..i-1];T.length =i;}

Return OK;

指针变量C也可以自增!意即每次后移一个数据单元。}//StrAssign

链式存储特点:用链表存储串值,易插入和删除。

法1:链表结点(数据域)大小取1

head

A?B?C?I NULL法2:链表结点(数据域)大小取n(例如n=4)

head

A B C D ?E F G H ?I # # # NULL讨论:法1存储密度为1/2;法2存储密度为9/15=3/5;显然,若数据元素很多,用法2存储更优—称为块链结构

块链类型定义:

#define CHUNKSIZE 80 //可由用户定义的块大小typedef struct Chunk { //首先定义结点类型

char ch [ CHUNKSIZE ]; //结点中的数据域struct Chunk * next ; //结点中的指针域

}Chunk;

typedef struct { //其次定义用链式存储的串类型

Chunk *head; //头指针Chunk *tail; //尾指针int curLen; //结点个数

} Lstring; //串类型只用一次,前面可以不加Lstring

例略

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

这类操作中均涉及到定位问题,称为串的模式匹配。它是串处理系统中最重要的操作之一。

4.3 串的模式匹配算法

模式匹配(Pattern Matching) 即子串定位运算(Index函数)。

算法目的:确定主串中所含子串第一次出现的位置(定位)

——即如何实现Index(S,T,pos)函数(见教材P71)初始条件:串S和T存在,T是非空串,1≤pos≤StrLength(s)操作结果:若主串S中存在和串T值相同的子串,则返回它在主串S中第pos个字符之后第一次出现的位置;否则函数值为0。注:S称为被匹配的串,T称为模式串。若S包含串T,则称“匹配成功”。否则称“匹配不成功”。

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

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