还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《数据结构》课程实验报告疑辎顺序串和链串实验序号实验日期4院系班级学号姓名指导狮成绩专业教师评语-实验目的和要求理辘和普徽形数间的捐1重醒提确牌上腌串上场物基本运算就2掌麟的简单蛾算法和算法3KMP趣运廨研辘躺懒一些综合应用问题4二仁项目艘编写一个程序实班孵串的各种基本运算井棚塞船被计一个主解皖胭吓动能algo4-
1.cpp,串和串;1s=abcdefghefghijklmn sl=xyz”输出串;2s输出串的长;3s1在串的第个字符位置插入用胪生用;4s9si S2输出串;5s2删除串的第个字符刑台的个字瓶产生解;6s25S2输出串;7S2将串的第个字符开始的个字符替换邮移生串;8s25$1S2输出串;9S2提取串的第个字符开始的个字符而产甥;10s210S3输出串;11S3将串和串连接起来而产生串;12s1S2s4输出串13s4o编写一悌序实雕里的各牌本运第并在螳掰喷计一个主修耕砌下功能algo4-
2.cpp,串和串;1s=abcdefghefghijklmn”sl=xyz”输出串;2s输出串的长;3s1在串$的第个字符位置插入串耐串您49si1输出串;5S2删除串的第个字符刑蒯伸肺产生解;6s25S2输出串;7s2将串的第个字符开始的个铺替换成串胪甥;8s25S1S2r-next=q;r=q;p1=p1-next;while p!=NULLq=LiString*mallocsizeofLiString;q-data=p-data;q-next=NULL;r-next=q;r=q;p=p-next;}return str;}void DispStrLiString*s{LiString*p=s-next;while p!=NULLp=p-next;int mainLiString*s,*s1,*s2,*s3,*s4;建立串和串s输出串串的长度s在串$的第伸符谴插入串胪甥9si输出串册除串第俾符开始的个字辆产生用s2=lnsStrs,9,s1;s25s2=DelStrs,2,3;输出串将串si2个字符开始的5个字符麟邮s1而产装s2=RepStrs,25,s1;5输出串提蟒的第伸符开始的个字辆产殖s210s3=SubStrs,2,10;输出串将串和串麒睐生串S1S2Ts4=Concats1,s2;输出串DispStrs4;空间不够,可以增it顺碌输出串;11S3;12将串s1和串s2连接起来萨生串s4输出串13s4o
三、实额加容顺序串的基本运算的算法StrAssigii s,cstr,StrCopy s,t,StrEquat st,StrLengtB s,Concat5链串sJJ,lnsStr s1J,s2s,t,SubStr,DelStr s,ij,RepStr s,ij,t,DispStr s的基本运算的算法StrAssigns,cstr,StrCopy st,StrEquai s,t,Strijength s,Concat3s,i,j,lnsStr s1,i,s2s,t,SubStr,DelStr s,ij,RepStr sij,t,DispStr s3
三、蝴果与淅4-1include stdio.h#define MaxSize100typedef struct{char data[MaxSize];int length;}SqString;void StrAssignSqString s,char cstr[]{int i;s.data[i]=cstr[i];s.length=i;}void StrCopySqStrings,SqString t{int i;for i=0;it.length;i+4-s.data[i]=t.data[i];s.length=t.length;int StrEqualSqStrings,SqString t{int same=1,i;if s.lengthkt.lengthsame=O;elsefor i=0;is.length;i+4-if s.data[i]!=t.data[i]{same=0;break;}return same;int StrLengthSqStringsreturn s.length;}SqString ConcatSqStrings,SqString t{SqString str;int i;str.length=s.length-i-t.length;for i=0;is.length;i+4-str.data[i]=s.data[i];for i=0;it.length;i+4-str.data[s.length+i]=t.data[i];return str;}SqString SubStrSqStrings,int i,int j{SqString str;int k;str.length=O;if i=0||is.length||j0||i+j-1s.length return str;for k=i-1;ki+j-1;k++str.data[k-i+1]=s.data[k];str.length=j;return str;SqString lnsStrSqStrings1,int i,SqStrings2;{intjSqString str;str.length=O;if i=0||is
1.length+1return str;for j=O;ji-1;j++str.data[j]=s
1.data[j];for j=0;js
2.length;j++str.data[i+j-1]=s
2.data[j];for j=i-1;js
1.length;j++str.data[s
2.length+j]=s
1.data[j];str.length=s
1.length+s
2.length;return str;}SqString DelStrSqStrings,int i,int j{int k;SqString str;str.length=O;if i=0||is.length||i+js.length+1return str;for k=0;ki-1;k++str.data[k]=s.data[k];for k=i+j-1;ks.length;k++str.data[k-j]=s.data[k];str.length=s.length-j;return str;}SqString RepStrSqStringsjnt ijntj,SqString t{int k;SqString str;str.length=O;if i=0||is.length||i+j-1s.length return str;for k=0;ki-1;k++str.data[k]=s.data[k];for k=O;kt.length;k++str.data[i+k-1]=t.data[k];for k=i+j-1;ks.length;k++str.data[t.length+k-j]=s.data[k];str.length=s.length-j4-t.length;return str;void DispStrSqStrings{int i;if s.length0|for i=O;is.length;i++}int mainSqStrings,s1,s2,s3,s4;建立串,和串s=abcdefghefghijklmrT输出串DispStrs;的长度$s而产si辨的第伸符位置瞅审s9生用s2=lnsStrs,9,s1;输出串DispStrs2;个字瓶产生5嗨串的第个字符开始的s2评s2=DelStrs,2,5;输出串S2DispStrs2;个字符哲而产5s1髀瞬个铺开始的s2毓串生串s2=RepStrs,2,5,s1;输出串S2DispStrs2;个字符法10提蟒的第个铺开始的s2般s3=SubStrs,2,10;输出串S3DispStrs3;s4=Concats1,s2;将串和串籁起来胪生串s1S2输出串s4DispStrs4;4-2include stdio.hinclude malloc.h typedefstruct snodechardata;struct snode*next;}LiString;void StrAssignLiString*s,char cstr[]{int i;□String*r,*p;s=LiString*mallocsizeofLiString;r=s;{p=LiString*mallocsizeofLiString;p-data=cstr[i];r-next=p;r=p;}r-next=NULL;}void StrCopyLiString*s,LiString*t{LiString*p=t-next,*q,*r;s=LiString*mallocsizeofLiString;r=s;while p!=NULL{q=LiString*mallocsizeofLiString;q-data=p-data;r-next=q;r=q;p=p-next;r-next=NULL;}int StrEqualLiString*s,LiString*t{LiString*p=s-next,*q=t-next;while p!=NULLq!=NULLp-data==q-data{p=p-next;q=q-next;if p==NULLq==NULL return1;elsereturn0;int StrLengthLiString*s{int i=0;□String*p=s-next;while p!=NULL;{i++p=p-next;return i;}□String*ConcatLiString*s,LiString*t{LiString*str,*p=s-next,*q,*r;str=LiString*mallocsizeofLiString;r=str;while p!=NULL{q=LiString*mallocsizeofLiString;q-data=p-data;r-next=q;r=q;p=p-next;}p=t-next;while p!=NULL{q=LiString*mallocsizeofLiString;q-data=p-data;r-next=q;r=q;p=p-next;r-next=NULL;return str;}LiString*SubStrLiString*s,int i,int j{int k;LiString*str,*p=s-next*q,*r;5str=LiString*mallocsizeofLiString;str-next=NULL;r=str;if i=0||iStrLengths||j0||i+j-1StrLengths return str;for k=0;ki-1;k++p=p-next;for k=1;k=j;k++{q=LiString*mallocsizeofLiString;q-data=p-data;r-next=q;r=q;p=p-next;r-next=NULL;return str;□String*lnsStrLiString*s,int i,LiString*t{int k;□String*str,*p=s-next,*p1=t-next*q,*r;Jstr=LiString*mallocsizeofLiString;str-next=NULL;r=str;if i=0||iStrLengths+1returnstr;for k=1;ki;k++{q=LiString*mallocsizeofLiString;q-data=p-data;r-next=q;r=q;p=p-next;while p1!=NULL{q=LiString*mallocsizeofLiString;q-data=p1-data;r-next=q;r=q;p1=p1-next;while p!=NULLq=LiString*mallocsizeofLiString;q-data=p-data;r-next=q;r=q;p=p-next;r-next=NULL;returnstr;}□String*DelStrLiString*s,int i,int j{int k;□String*str,*p=s-next,*q,*r;str=LiString*mallocsizeofLiString;r=str;if i=0||iStrLengths||j0||i+j-1StrLengths returnstr;for k=0;ki-1;k++{q=LiString*mallocsizeofLiString;q-data=p-data;r-next=q;r=q;p=p-next;}for k=0;kj;k++p=p-next;while p!=NULLq=LiString*mallocsizeofLiString;q-data=p-data;r-next=q;r=q;p=p-next;r-next=NULL;returnstr;□String*RepStrLiString*s,int i,intj,LiString*tint k;LiString*str,*p=s-next,*p1=t-next,*q,*r;str=LiString*mallocsizeofLiString;str-next=NULL;r=str;if i=0||iStrLengths||j0||i+j-1StrLengths returnstr;for k=0;ki-1;k++q=LiString*mallocsizeofLiString;q-data=p-data;q-next=NULL;r-next=q;r=q;p=p-next;}for k=0;kj;k++p=p-next;while p1!=NULLq=LiString*mallocsizeofLiString;q-data=p1-data;q-next=NULL;。