- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、实验目的和要求
1理解串的一般线性表之间的差异。
2重点掌握在顺序串上和链串上实现串的基本运算算法。
3掌握串的简单匹配算法和KMP算法。
4灵活运用串这种数据结构解决一些综合应用问题。
二、实验环境、内容和方法
实验内容:
1实现顺序串的各种基本运算。
2实现链串的各种基本运算。
3实现顺序串的各种模式匹配运算。
4求一个串中出现的第一个最长重复串。
实验方法:
通过上机操作完成各内容。
实验环境:
实验用PC机一台,使用操作系统为Windows XP Professional,安装OFFICE 2003、VC++等软件。
三、实验过程描述
实验题4.1实现顺序串各种基本运算的算法
编写一个程序algo4-1.cpp,实现顺序串的各种基本运算,并在此基础上设计一个程序exp4-1.cpp 完成如下功能:
1建立串谁“abcdefghefghefghijklmn”和串s1=”xyz”;
2输出串s;
3输出串s的长度;
4在串s的第9个字符位置插入串s1而产生串s2;
5输出串s2;
6删除串s第2个字符开始的5个字符替换成串s1而产生串s2;
7输出串s2;
8将串s第2个字符开始的5个字符替换成串s1而产生串s2;
9输出串s2;
10提取串s的第2个字符开始的10个字符而产生串s3;
11输出串s3;
12将串s1和串s2连接起来而产生串s4;
13输出串s4.
解:本工程Proj4_1组成结构如图4.1所示。algo4-1.cpp文件,其中包含如下函数:
StrAssign(SqString str,char cstr[]):由串常量cstr创建串str.
StrCopy(SqString s,SqString t):将串t复制到串s.
StrEqual(SqString s,SqString t):判断两个串s和t是否相同。
StrLength(SqString s):求串s的长度。
Concat(SqString s,SqString t):将串t连接到串s之后产生新串。
SubStr(SqString s,int i,int j):由串s的第i个字符开始的j个字符产生新串。
InsStr(SqString s1,int i,SqString s2):将串s2插入到串s1的第i个位置处。
DelStr(SqString s,int i,int j):删除串s的第i个字符开始的j个字符产生新串。
RepStr(SqString s,int i,int j,SqString t):将串s的第i个字符开始的j个字符替换成串
t产生新串
DispStr(SqString s):输出串s的所有元素。
对应的程序如下:
图4.1 Proj4_1工程组成
//文件名:algo4-1.cpp
#include stdio.h
#define MaxSize 100 //最多的字符个数
typedef struct
{ char data[MaxSize]; //定义可容纳MaxSize个字符的空间
int length; //标记当前实际串长
} SqString;
void StrAssign(SqString s,char cstr[]) //s为引用型参数
{ int i;
for (i=0;cstr[i]!=\0;i++)
s.data[i]=cstr[i];
s.length=i;
}
void StrCopy(SqString s,SqString t) //s为引用型参数
{ int i;
for (i=0;it.length;i++)
s.data[i]=t.data[i];
s.length=t.length;
}
bool StrEqual(SqString s,SqString t)
{ bool same=true;
int i;
if (s.length!=t.length) //长度不相等时返回0
same=false;
else
for (i=0;is.length;i++)
if (s.data[i]!=t.data[i]) //有一个对应字符不相同时返回0
{ same=false;
break;
}
return same;
}
int StrLength(SqString s)
{
return s.length;
}
SqString Concat(SqString s,SqString t)
{ SqString str;
int i;
str.leng
您可能关注的文档
- 室外管网施工组织设计..doc
- 室外埋地管道施工方案..doc
- 室外配套工程..doc
- 手持GPS三参数计算及各地坐标转换经验参数..doc
- 手工计算钢筋公式大全..doc
- 手工氩弧焊机说明书..doc
- 手机等电子产品的热设计方法..doc
- 手机界面常用导航设计分析..docx
- 手机网上营业厅自助服务系统的设计实现..doc
- 手机中的主要传感器,详细版!..doc
- 2025年财会类银行业专业人员(中级)-法律法规与综合能力参考题库含答案解析.docx
- 清洁能源转型路径:能源行业低碳发展的探索.docx
- 2025年山西轻工职业技术学院单招笔试综合素质试题库含答案解析(5卷).docx
- 2025年事业单位笔试-海南-海南医学基础知识(医疗招聘)历年参考题典型考点含答案解析.docx
- 2025年职业技能茶艺师茶艺师(初级)-茶艺师(初级)参考题库含答案解析.docx
- 2025年沙洲职业工学院单招笔试职业能力测验试题库含答案解析(5卷).docx
- 2025年安全隐患排查治理工作方案.docx
- 2025年广东省卫生管理研究专业职称任职资格考试历年参考题库含答案详解.docx
- 2025年建筑工程类标准员专业管理实务-专业基础知识参考题库含答案解析.docx
- 电大工作计划范文.doc
原创力文档


文档评论(0)