数据结构顺序串基本操作实验报告

上传人:夏** 文档编号:486696456 上传时间:2022-12-01 格式:DOC 页数:7 大小:95.50KB
返回 下载 相关 举报
数据结构顺序串基本操作实验报告_第1页
第1页 / 共7页
数据结构顺序串基本操作实验报告_第2页
第2页 / 共7页
数据结构顺序串基本操作实验报告_第3页
第3页 / 共7页
数据结构顺序串基本操作实验报告_第4页
第4页 / 共7页
数据结构顺序串基本操作实验报告_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《数据结构顺序串基本操作实验报告》由会员分享,可在线阅读,更多相关《数据结构顺序串基本操作实验报告(7页珍藏版)》请在金锄头文库上搜索。

1、数据结构实验报告课程数据结构_实验名称顺序串基本操作院系电信学院专业班级计科10-4姓名学号一、实验目的1)熟悉串的定义和串的基本操作。2)掌握顺序串的基本运算。3)加深对串数据结构的理解,逐步培养解决实际问题的编程能力。二、实验环境装有VisualC6.0的计算机。本次实验共计2学时。三、实验内容编写一个程序,实现顺序串的各种基本运算,并在此基础上设计一个主程序。具体如下编写串的基本操作函数顺序串类型定义如下所示:typedefstructcharchMAX;intlength;SeqString;(1)串赋值Assign(s,t)将一个字符串常量赋给串S,即生成一个其值等于t的串s(2)串

2、复制StrCopy(s,t)将串t赋给串s(3)计算串长度StrLength(s)返回串s中字符个数(4)判断串相等StrEqual(s,t)若两个串s与t相等则返回1;否则返回0。(5) 串连接Concat(s,t)返回由两个串s和t连接在一起形成的新串。(6) 求子串SubStr(s,i,j)返回串s中从第i(1WiWStrLength(s)个字符开始的、由连续j个字符组成的子串。(7) 插入InsStr(s,i,t)将串t插入到串s的第i(1WiWStrLength(s)+1)个字符中,即将t的第一个字符作为s的第i个字符,并返回产生的新串(8) 串删除DelStr(s,i,j)从串s中

3、删去从第i(1WiWStrLength(s)个字符开始的长度为j的子串,并返回产生新串。(9) 串替换RepStr(s,s1,s2)在串s中,将所有出现的子串s1均替换成s2。(10) 输出串DispStr(s)输出串s的所有元素值(11) 判断串是否为空IsEmpty(s)为空返回1,不为空返回0编写主函数调用上述函数实现下列操作:(1) 建立串s=“abcdefghijklmn”,串s1=“xyz”,串t=“hijk”(2) 复制串t到t1,并输出t1的长度(3) 在串s的第9个字符位置插入串s1而产生串s2,并输出s2(4) 删除s第2个字符开始的5个字符而产生串s3,并输出s3(5)

4、将串s第2个字符开始的3个字符替换成串s1产生串s4,输出s4(6) 提取串s的第2个字符开始的10个字符而产生串s5,并输出s5(7) 将串s1和串t连接起来而产生串s4,并输出s4(8) 比较串s1和s5是否相等,输出结果(9) 判断s3是否为空四、源程序代码#include#defineMAX100typedefstructcharchMAX;intlength;SqString;voidStrAssign(SqString&s,chart)/串赋值inti;for(i=0;ti!=0;i+)s.chi=ti;s.length=i;voidStrCopy(SqString&s,SqStr

5、ingt)/串复制inti;for(i=0;it.length;i+)s.chi=t.chi;s.length=t.length;intStrEqual(SqStrings,SqStringt)/判断串相等intsame=1,i;if(s.length!=t.length)same=0;elsefor(i=0;is.length;i+)if(s.chi!=t.chi)same=0;break;return(same);intStrLength(SqStrings)/计算串长度return(s.length);SqStringConcat(SqStrings,SqStringt)/串连接SqSt

6、ringstr;inti;str.length=s.length+t.length;for(i=0;is.length;i+)str.chi=s.chi;for(i=0;it.length;i+)str.chs.length+i=t.chi;returnstr;SqStringSubStr(SqStrings,inti,intj)求子串SqStringstr;intk;str.length=0;if(is.length|js.length)returnstr;for(k=i-1;ki+j-1;k+)str.chk-i+1=s.chk;str.length=j;returnstr;/插入SqSt

7、ringInsStr(SqStrings1,inti,SqStrings2)intj;SqStringstr;str.length=0;if(is1.length+1)returnstr;for(j=0;ji-1;j+)str.chj=s1.chj;for(j=0;js2.length;j+)str.chi+j-1=s2.chj;for(j=i-1;js1.length;j+)str.chs2.length+j=s1.chj;str.length=s1.length+s2.length;returnstr;SqStringDelStr(SqStrings,inti,intj)/删除intk;S

8、qStringstr;str.length=0;if(is.length|i+js.length+1)returnstr;for(k=0;ki-1;k+)str.chk=s.chk;for(k=i+j-1;ks.length;k+)str.chk-j=s.chk;str.length=s.length-j;returnstr;/替换SqStringRepStr(SqStrings,inti,intj,SqStringt)intk;SqStringstr;str.length=0;if(is.length|i+j-1s.length)returnstr;for(k=0;ki-1;k+)str.c

9、hk=s.chk;for(k=0;kt.length;k+)str.chi+k-1=t.chk;for(k=i+j-1;k0)for(i=0;i0)return0;elsereturn1;/判断串是否为空/不为空/为空intmain(void)voidStrAssign(SqString&s,chart);串赋值voidStrCopy(SqString&s,SqStringt);串复制intStrEqual(SqStrings,SqStringt);判断串相等intStrLength(SqStrings);/计算串长度SqStringConcat(SqStrings,SqStringt);/串

10、连接SqStringSubStr(SqStrings,inti,intj);求子串SqStringInsStr(SqStringsl,inti,SqStrings2);插入SqStringDelStr(SqStrings,inti,intj);删除SqStringRepStr(SqStrings,inti,intj,SqStringt);/替换voidDispStr(SqStrings);输出串所有元素intIsEmpty(SqStrings);/判断串是否为空charchl=abcdefghijklmn,ch2=xyz,ch3=hijk;SqStrings,sl,s2,s3,s4,s5,s6

11、,t,tl,t2;intlongth,same,kong;StrAssign(s,chl);/建立串s=abcdefghijklmnStrAssign(sl,ch2);/建立串sl=xyzStrAssign(t,ch3);建立串t=hijkStrCopy(t1,t);将串t复制给t1printf(串t1:);DispStr(t1);longth=StrLength(t1);/求串t1的长度printf(串t1的长度为:dn,longth);printf(串s:);DispStr(s);s2=InsStr(s,9,s1);printf(串s2:);DispStr(s2);s3=DelStr(s,

12、2,5);printf(串s3:);DispStr(s3);/将串s1插入串s的第9个位置,得串s2/输出串s2删除s第2个字符开始的5个字符而产生串s3,并输出s3/输出串s3s4=RepStr(s,2,5,sl);用串si替换串s中从第2个字符起连续5个字符得到新串s4printf(串s4:);DispStr(s4);/输出串s4s5=SubStr(s,2,10);提取串s中第2个字符开始的10个字符而产生串s5printf(串s5:);DispStr(s5);/输出串s5s6=Concat(s1,t);/连接串s1和t而产生串s6printf(串s6:);DispStr(s6);/输出串s6same=StrEqual(s1,s5);判断s1、s5是否相等if(same=1)printf(串s1、s5相等!”);elseprintf(串s1、s5不相等!”);kong=IsEmpty(s3);/判断s3是否为空if(kong=1)printf(n串s3为空!”);elseprintf(n串s3不为空!n);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号