- 1、本文档共8页,可阅读全部内容。
- 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-1 串的动态顺序存储实现
一、实验目标
通过本实验,你将能够在以下几个方面得到锻炼:
1. 用 C 语言熟练编写程序和调试程序;
2. 掌握和运用 C 语言的高级语法特性,包括:结构体、指针、函数指针、typedef 、动
态内存分配和递归函数,等。
3. 掌握从分析问题到编写伪代码、编写程序、调试程序和测试程序的思路;
4. 能够根据给定的 ADT 规格说明熟练的编写代码;
5. 理解并熟练掌握串动态顺序存储结构的 C 语言描述;
6. 掌握串的动态顺序存储结构的算法实现。
二、ADT 规格说明
串的ADT 规格说明请参考教材 71 页。
三、实验要求
用动态顺序存储的方式实现串的 ADT 规格说明。
四、实验步骤
1. 建立本次实验的文件夹 Lab4-1 。
2. 从 Moodle 网络课堂下载实验文件 Lab4-1.rar ,包括三个代码文件:DynaSeqString.h 、
DynaSeqString.cpp 和 Lab.cpp 。各代码文件的作用如下表所示:
文件 作用
DynaSeqString.h 动态顺序串 ADT 的定义
DynaSeqString.cpp 动态顺序串 ADT 的实现(待完成)
Lab.cpp 测试动态顺序串的主程序(待完成)
3. DynaSeqString.h 文件是动态顺序串的数据结构储存定义和基本操作的声明。
- 1 -
DynaSeqString.cpp 是动态顺序串基本操作的实现。本次实验的主要内容就是编写动态
顺序串所有操作函数的实现代码,也就是完成 DynaSeqString.cpp 代码文件的编写。
注意每个操作函数前面都有函数头注释,包括:操作目的、初始条件、操作结果、函
数参数和返回值。这些信息对于保证函数代码的逻辑正确性以及对函数进行测试是非
常有用的。这两个文件的代码如下。
DynaSeqString.h
/***
*DynaSeqString.h - 字符串的动态顺序存储定义
*
****/
#if !defined (DYNASEQSTRING_H)
#define DYNASEQSTRING_H
/*
// 定义字符串结构
*/
typedef struct String
{
char *ch; // 字符串存储的基址
int length; // 字符串长度
}DString;
/*
// 字符串的基本操作
*/
void InitString(DString *s);
void DestroyString(DString *s);
bool StrAssign(DString *dst, const char* src);
bool StrCopy(DString *dst, DString src);
bool StrEmpty(DString s);
int StrCompare(DString s, DString t);
int StrLength(DString s);
void ClearString(DString s);
bool Concat(DString *t, DString s1, DString s2);
bool SubString(DString *sub, DString src, int pos, int len);
int Index(DString ms, DString sub, int pos);
int Replace(DString *ms, DString sub, DString v);
bool StrInsert(DString *ms, int pos, DString sub);
- 2 -
bool StrDelete(DString *s, int pos, int len);
#e
文档评论(0)