广东工业大学数据结构实验报告12届范文.docx
《广东工业大学数据结构实验报告12届范文.docx》由会员分享,可在线阅读,更多相关《广东工业大学数据结构实验报告12届范文.docx(37页珍藏版)》请在冰豆网上搜索。
广东工业大学数据结构实验报告12届范文
广东工业大学数据结构实验报告
(1)
学院:
自动化专业:
12级物联网3班
姓名:
xxx学号:
xxx老师:
张小波
实验日期:
2014年6月21日实验地点:
实二203成绩评定:
实验题目:
求一个正整数的各位数字之和
1、实验目的
求一个正整数的各位数字之和。
2、实验软件环境
1.计算机每人一台。
2.软件:
VisualStudio2012
3、实验内容
#include
intfunc(intnum)
{
ints=0;
do
s+=num%10;
num/=10;
}while(num);
return(s);
}
voidmain()
intn;
printf("输入一个整数:
");
scanf("%d",&n);
printf("各位数字之和:
%d\n",func(n));
printf("\n");
4、实验结果和分析
当输入一个整数的时候,得出的是该整数的所有数字的和
5、实验心得体会
本实验过程中,感觉能用简单的方法实现程序就应该用简单的,一开始我用了多个for循环,感觉没必要,就用了do-while循环,因此保持程序的简洁,精悍是最应该的,过于冗杂的程序不仅臃肿,而且难以分析,分享。
(2)
求两个多项式的相加运算
一、实验目的
熟悉并学会使用多项式的表示方法以及计算方法
二、实验软件环境
三、实验内容
#defineMAX20//多项式最多项数
typedefstruct//定义存放多项式的数组类型
doublecoef;//系数
intexp;//指数
}PolyArray[MAX];
typedefstructpnode//定义单链表结点类型
structpnode*next;
}PolyNode;
voidDispPoly(PolyNode*L)//输出多项式
boolfirst=true;//first为true表示是第一项
PolyNode*p=L->next;
while(p!
=NULL)
if(first)
first=false;
elseif(p->coef>0)
printf("+");
if(p->exp==0)
printf("%g",p->coef);
elseif(p->exp==1)
printf("%gx",p->coef);
else
printf("%gx^%d",p->coef,p->exp);
p=p->next;
voidDestroyList(PolyNode*&L)//销毁单链表
PolyNode*p=L,*q=p->next;
while(q!
free(p);
p=q;
q=p->next;
voidCreateListR(PolyNode*&L,PolyArraya,intn)//尾插法建表
PolyNode*s,*r;inti;
L=(PolyNode*)malloc(sizeof(PolyNode));//创建头结点
L->next=NULL;
r=L;//r始终指向终端结点,开始时指向头结点
for(i=0;i{s=(PolyNode*)malloc(sizeof(PolyNode));//创建新结点s->coef=a[i].coef;s->exp=a[i].exp;r->next=s;//将*s插入*r之后r=s;}r->next=NULL;//终端结点next域置为NULL}voidSort(PolyNode*&head)//按exp域递减排序{PolyNode*p=head->next,*q,*r;if(p!=NULL)//若原单链表中有一个或以上的数据结点{r=p->next;//r保存*p结点后继结点的指针p->next=NULL;//构造只含一个数据结点的有序表p=r;while(p!=NULL){r=p->next;//r保存*p结点后继结点的指针q=head;while(q->next!=NULL&&q->next->exp>p->exp)q=q->next;//在有序表中找插入*p的前驱结点*qp->next=q->next;//将*p插入到*q之后q->next=p;p=r;}}}voidAdd(PolyNode*ha,PolyNode*hb,PolyNode*&hc)//求两有序集合的并{PolyNode*pa=ha->next,*pb=hb->next,*s,*tc;doublec;hc=(PolyNode*)malloc(sizeof(PolyNode));//创建头结点tc=hc;while(pa!=NULL&&pb!=NULL){if(pa->exp>pb->exp){s=(PolyNode*)malloc(sizeof(PolyNode));//复制结点s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;}elseif(pa->expexp){s=(PolyNode*)malloc(sizeof(PolyNode));//复制结点s->exp=pb->exp;s->coef=pb->coef;tc->next=s;tc=s;pb=pb->next;}else//pa->exp=pb->exp{c=pa->coef+pb->coef;if(c!=0)//系数之和不为0时创建新结点{s=(PolyNode*)malloc(sizeof(PolyNode));//复制结点s->exp=pa->exp;s->coef=c;tc->next=s;tc=s;}pa=pa->next;pb=pb->next;}}if(pb!=NULL)pa=pb;//复制余下的结点while(pa!=NULL){s=(PolyNode*)malloc(sizeof(PolyNode));//复制结点s->exp=pa->exp;s->coef=pa->coef;tc->next=s;tc=s;pa=pa->next;}tc->next=NULL;}voidmain(){PolyNode*ha,*hb,*hc;PolyArraya={{1.2,0},{2.5,1},{3.2,3},{-2.5,5}};PolyArrayb={{-1.2,0},{2.5,1},{3.2,3},{2.5,5},{5.4,10}};CreateListR(ha,a,4);CreateListR(hb,b,5);printf("原多项式A:");DispPoly(ha);printf("原多项式B:");DispPoly(hb);Sort(ha);Sort(hb);printf("有序多项式A:");DispPoly(ha);printf("有序多项式B:");DispPoly(hb);Add(ha,hb,hc);printf("多项式相加:");DispPoly(hc);DestroyList(ha);DestroyList(hb);DestroyList(hc);}四、实验结果和分析五、实验心得体会本实验过程中,我进一步了解了单链表的各种操作以及对应的函数的使用方法,以及学会熟练调用函数来实现,比较深刻地体会到了使用单链表的好处和方便。广东工业大学数据结构实验报告(3)学院:自动化专业:12级物联网3班姓名:xxx学号:xxx老师:张小波实验日期:2014年6月21日实验地点:实二203成绩评定:实验题目:病人看病模拟程序一、实验目的掌握顺序栈以及循环队列的使用。二、实验软件环境1.计算机每人一台。2.软件:VisualStudio2012三、实验内容#include#includetypedefstructqnode{intdata;structqnode*next;}QNode;//链队节点类型typedefstruct{QNode*front,*rear;}QuType;//链队类型voidDestroyqueue(QuType*&qu)//释放链队{QNode*p,*q;p=qu->front;if(p!=NULL)//若链队不空{q=p->next;while(q!=NULL)//释放队中所有的节点{free(p);p=q;q=q->next;}free(p);}free(qu);//释放链队节点}voidSeeDoctor(){intsel,flag=1,find,no;QuType*qu;QNode*p;qu=(QuType*)malloc(sizeof(QuType));//创建空队qu->front=qu->rear=NULL;while(flag==1)//循环执行{printf("1:排队2:就诊3:查看排队4.不再排队,余下依次就诊5:下班请选择:");scanf("%d",&sel);switch(sel){case1:printf(">>输入病历号:");do{scanf("%d",&no);find=0;p=qu->front;while(p!=NULL&&!find){if(p->data==no)find=1;elsep=p->next;}if(find)printf(">>输入的病历号重复,重新输入:");}while(find==1);p=(QNode*)malloc(sizeof(QNode));//创建节点p->data=no;p->next=NULL;if(qu->rear==NULL)//第一个病人排队qu->front=qu->rear=p;else{qu->rear->next=p;qu->rear=p;//将*p节点入队}break;case2:if(qu->front==NULL)//队空printf(">>没有排队的病人!\n");else//队不空{p=qu->front;printf(">>病人%d就诊\n",p->data);if(qu->rear==p)//只有一个病人排队的情况qu->front=qu->rear=NULL;elsequ->front=p->next;free(p);}break;case3:if(qu->front==NULL)//队空printf(">>没有排列的病人!\n");else//队不空{p=qu->front;printf(">>排队病人:");while(p!=NULL){printf("%d",p->data);p=p->next;}printf("\n");}break;case4:if(qu->front==NULL)//队空printf(">>没有排列的病人!\n");else//队不空{p=qu->front;printf(">>病人按以下顺序就诊:");while(p!=NULL){printf("%d",p->data);p=p->next;}printf("\n");}Destroyqueue(qu);//释放链队flag=0;//退出break;case5:if(qu->front!=NULL)//队不空printf(">>请排队的病人明天就医!\n");flag=0;//退出Destroyqueue(qu);//释放链队break;}}}voidmain(){SeeDoctor();}四、实验结果和分析五、实验心得体会本实验过程中,要求考虑的情况较多,在循环队列中使用指针的使用过程中对空的这种情况还是欠缺考虑,所以以后在进行循环队列使用中务必要记得考虑对空的情况。广东工业大学数据结构实验报告(4)学院:自动化专业:12级物联网3班姓名:xxx学号:xxx老师:张小波实验日期:2014年6月21日实验地点:实二203成绩评定:实验题目:文本串加密和解密程序一、实验目的掌握顺序栈以及循环队列的使用。二、实验软件环境1.计算机每人一台。2.软件:VisualStudio2012三、实验内容lgo4-1.cpp#include#defineMaxSize100//最多的字符个数typedefstruct{chardata[MaxSize];//定义可容纳MaxSize个字符的空间intlength;//标记当前实际串长}SqString;voidStrAssign(SqString&s,charcstr[])//s为引用型参数{inti;for(i=0;cstr[i]!='\0';i++)s.data[i]=cstr[i];s.length=i;}voidStrCopy(SqString&s,SqStringt)//s为引用型参数{inti;for(i=0;is.data[i]=t.data[i];s.length=t.length;}boolStrEqual(SqStrings,SqStringt){boolsame=true;inti;if(s.length!=t.length)//长度不相等时返回0same=false;elsefor(i=0;iif(s.data[i]!=t.data[i])//有一个对应字符不相同时返回0{same=false;break;}returnsame;}intStrLength(SqStrings){returns.length;}SqStringConcat(SqStrings,SqStringt){SqStringstr;inti;str.length=s.length+t.length;for(i=0;istr.data[i]=s.data[i];for(i=0;istr.data[s.length+i]=t.data[i];returnstr;}SqStringSubStr(SqStrings,inti,intj){SqStringstr;intk;str.length=0;if(i<=0||i>s.length||j<0||i+j-1>s.length)returnstr;//参数不正确时返回空串for(k=i-1;kstr.data[k-i+1]=s.data[k];str.length=j;returnstr;}SqStringInsStr(SqStrings1,inti,SqStrings2){intj;SqStringstr;str.length=0;if(i<=0||i>s1.length+1)//参数不正确时返回空串returnstr;for(j=0;jstr.data[j]=s1.data[j];for(j=0;jstr.data[i+j-1]=s2.data[j];for(j=i-1;jstr.data[s2.length+j]=s1.data[j];str.length=s1.length+s2.length;returnstr;}SqStringDelStr(SqStrings,inti,intj){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j>s.length+1)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
s=(PolyNode*)malloc(sizeof(PolyNode));//创建新结点
s->coef=a[i].coef;
s->exp=a[i].exp;
r->next=s;//将*s插入*r之后
r=s;
r->next=NULL;//终端结点next域置为NULL
voidSort(PolyNode*&head)//按exp域递减排序
PolyNode*p=head->next,*q,*r;
if(p!
=NULL)//若原单链表中有一个或以上的数据结点
r=p->next;//r保存*p结点后继结点的指针
p->next=NULL;//构造只含一个数据结点的有序表
p=r;
q=head;
while(q->next!
=NULL&&q->next->exp>p->exp)
q=q->next;//在有序表中找插入*p的前驱结点*q
p->next=q->next;//将*p插入到*q之后
q->next=p;
voidAdd(PolyNode*ha,PolyNode*hb,PolyNode*&hc)//求两有序集合的并
PolyNode*pa=ha->next,*pb=hb->next,*s,*tc;
doublec;
hc=(PolyNode*)malloc(sizeof(PolyNode));//创建头结点
tc=hc;
while(pa!
=NULL&&pb!
if(pa->exp>pb->exp)
s=(PolyNode*)malloc(sizeof(PolyNode));//复制结点
s->exp=pa->exp;s->coef=pa->coef;
tc->next=s;tc=s;
pa=pa->next;
elseif(pa->expexp)
s->exp=pb->exp;s->coef=pb->coef;
pb=pb->next;
else//pa->exp=pb->exp
c=pa->coef+pb->coef;
if(c!
=0)//系数之和不为0时创建新结点
s->exp=pa->exp;s->coef=c;
if(pb!
=NULL)pa=pb;//复制余下的结点
tc->next=NULL;
PolyNode*ha,*hb,*hc;
PolyArraya={{1.2,0},{2.5,1},{3.2,3},{-2.5,5}};
PolyArrayb={{-1.2,0},{2.5,1},{3.2,3},{2.5,5},{5.4,10}};
CreateListR(ha,a,4);
CreateListR(hb,b,5);
printf("原多项式A:
");DispPoly(ha);
printf("原多项式B:
");DispPoly(hb);
Sort(ha);
Sort(hb);
printf("有序多项式A:
printf("有序多项式B:
Add(ha,hb,hc);
printf("多项式相加:
");DispPoly(hc);
DestroyList(ha);
DestroyList(hb);
DestroyList(hc);
四、实验结果和分析
五、实验心得体会
本实验过程中,我进一步了解了单链表的各种操作以及对应的函数的使用方法,以及学会熟练调用函数来实现,比较深刻地体会到了使用单链表的好处和方便。
广东工业大学数据结构实验报告(3)
病人看病模拟程序
掌握顺序栈以及循环队列的使用。
typedefstructqnode
intdata;
structqnode*next;
}QNode;//链队节点类型
typedefstruct
QNode*front,*rear;
}QuType;//链队类型
voidDestroyqueue(QuType*&qu)//释放链队
QNode*p,*q;
p=qu->front;
=NULL)//若链队不空
=NULL)//释放队中所有的节点
q=q->next;
free(qu);//释放链队节点
voidSeeDoctor()
intsel,flag=1,find,no;
QuType*qu;
QNode*p;
qu=(QuType*)malloc(sizeof(QuType));//创建空队
qu->front=qu->rear=NULL;
while(flag==1)//循环执行
printf("1:
排队2:
就诊3:
查看排队4.不再排队,余下依次就诊5:
下班请选择:
scanf("%d",&sel);
switch(sel)
case1:
printf(">>输入病历号:
scanf("%d",&no);
find=0;
=NULL&&!
find)
if(p->data==no)
find=1;
if(find)
printf(">>输入的病历号重复,重新输入:
}while(find==1);
p=(QNode*)malloc(sizeof(QNode));//创建节点
p->data=no;p->next=NULL;
if(qu->rear==NULL)//第一个病人排队
qu->front=qu->rear=p;
qu->rear->next=p;qu->rear=p;//将*p节点入队
break;
case2:
if(qu->front==NULL)//队空
printf(">>没有排队的病人!
\n");
else//队不空
printf(">>病人%d就诊\n",p->data);
if(qu->rear==p)//只有一个病人排队的情况
qu->front=p->next;
case3:
printf(">>没有排列的病人!
printf(">>排队病人:
printf("%d",p->data);
case4:
printf(">>病人按以下顺序就诊:
Destroyqueue(qu);//释放链队
flag=0;//退出
case5:
if(qu->front!
=NULL)//队不空
printf(">>请排队的病人明天就医!
SeeDoctor();
本实验过程中,要求考虑的情况较多,在循环队列中使用指针的使用过程中对空的这种情况还是欠缺考虑,所以以后在进行循环队列使用中务必要记得考虑对空的情况。
广东工业大学数据结构实验报告(4)
文本串加密和解密程序
lgo4-1.cpp
#defineMaxSize100//最多的字符个数
{chardata[MaxSize];//定义可容纳MaxSize个字符的空间
intlength;//标记当前实际串长
}SqString;
voidStrAssign(SqString&s,charcstr[])//s为引用型参数
{inti;
for(i=0;cstr[i]!
='\0';i++)
s.data[i]=cstr[i];
s.length=i;
voidStrCopy(SqString&s,SqStringt)//s为引用型参数
for(i=0;is.data[i]=t.data[i];s.length=t.length;}boolStrEqual(SqStrings,SqStringt){boolsame=true;inti;if(s.length!=t.length)//长度不相等时返回0same=false;elsefor(i=0;iif(s.data[i]!=t.data[i])//有一个对应字符不相同时返回0{same=false;break;}returnsame;}intStrLength(SqStrings){returns.length;}SqStringConcat(SqStrings,SqStringt){SqStringstr;inti;str.length=s.length+t.length;for(i=0;istr.data[i]=s.data[i];for(i=0;istr.data[s.length+i]=t.data[i];returnstr;}SqStringSubStr(SqStrings,inti,intj){SqStringstr;intk;str.length=0;if(i<=0||i>s.length||j<0||i+j-1>s.length)returnstr;//参数不正确时返回空串for(k=i-1;kstr.data[k-i+1]=s.data[k];str.length=j;returnstr;}SqStringInsStr(SqStrings1,inti,SqStrings2){intj;SqStringstr;str.length=0;if(i<=0||i>s1.length+1)//参数不正确时返回空串returnstr;for(j=0;jstr.data[j]=s1.data[j];for(j=0;jstr.data[i+j-1]=s2.data[j];for(j=i-1;jstr.data[s2.length+j]=s1.data[j];str.length=s1.length+s2.length;returnstr;}SqStringDelStr(SqStrings,inti,intj){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j>s.length+1)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
s.data[i]=t.data[i];
s.length=t.length;
boolStrEqual(SqStrings,SqStringt)
{boolsame=true;
inti;
if(s.length!
=t.length)//长度不相等时返回0
same=false;
for(i=0;iif(s.data[i]!=t.data[i])//有一个对应字符不相同时返回0{same=false;break;}returnsame;}intStrLength(SqStrings){returns.length;}SqStringConcat(SqStrings,SqStringt){SqStringstr;inti;str.length=s.length+t.length;for(i=0;istr.data[i]=s.data[i];for(i=0;istr.data[s.length+i]=t.data[i];returnstr;}SqStringSubStr(SqStrings,inti,intj){SqStringstr;intk;str.length=0;if(i<=0||i>s.length||j<0||i+j-1>s.length)returnstr;//参数不正确时返回空串for(k=i-1;kstr.data[k-i+1]=s.data[k];str.length=j;returnstr;}SqStringInsStr(SqStrings1,inti,SqStrings2){intj;SqStringstr;str.length=0;if(i<=0||i>s1.length+1)//参数不正确时返回空串returnstr;for(j=0;jstr.data[j]=s1.data[j];for(j=0;jstr.data[i+j-1]=s2.data[j];for(j=i-1;jstr.data[s2.length+j]=s1.data[j];str.length=s1.length+s2.length;returnstr;}SqStringDelStr(SqStrings,inti,intj){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j>s.length+1)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
if(s.data[i]!
=t.data[i])//有一个对应字符不相同时返回0
{same=false;
returnsame;
intStrLength(SqStrings)
returns.length;
SqStringConcat(SqStrings,SqStringt)
{SqStringstr;
str.length=s.length+t.length;
for(i=0;istr.data[i]=s.data[i];for(i=0;istr.data[s.length+i]=t.data[i];returnstr;}SqStringSubStr(SqStrings,inti,intj){SqStringstr;intk;str.length=0;if(i<=0||i>s.length||j<0||i+j-1>s.length)returnstr;//参数不正确时返回空串for(k=i-1;kstr.data[k-i+1]=s.data[k];str.length=j;returnstr;}SqStringInsStr(SqStrings1,inti,SqStrings2){intj;SqStringstr;str.length=0;if(i<=0||i>s1.length+1)//参数不正确时返回空串returnstr;for(j=0;jstr.data[j]=s1.data[j];for(j=0;jstr.data[i+j-1]=s2.data[j];for(j=i-1;jstr.data[s2.length+j]=s1.data[j];str.length=s1.length+s2.length;returnstr;}SqStringDelStr(SqStrings,inti,intj){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j>s.length+1)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
str.data[i]=s.data[i];
for(i=0;istr.data[s.length+i]=t.data[i];returnstr;}SqStringSubStr(SqStrings,inti,intj){SqStringstr;intk;str.length=0;if(i<=0||i>s.length||j<0||i+j-1>s.length)returnstr;//参数不正确时返回空串for(k=i-1;kstr.data[k-i+1]=s.data[k];str.length=j;returnstr;}SqStringInsStr(SqStrings1,inti,SqStrings2){intj;SqStringstr;str.length=0;if(i<=0||i>s1.length+1)//参数不正确时返回空串returnstr;for(j=0;jstr.data[j]=s1.data[j];for(j=0;jstr.data[i+j-1]=s2.data[j];for(j=i-1;jstr.data[s2.length+j]=s1.data[j];str.length=s1.length+s2.length;returnstr;}SqStringDelStr(SqStrings,inti,intj){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j>s.length+1)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
str.data[s.length+i]=t.data[i];
returnstr;
SqStringSubStr(SqStrings,inti,intj)
intk;
str.length=0;
if(i<=0||i>s.length||j<0||i+j-1>s.length)
returnstr;//参数不正确时返回空串
for(k=i-1;k
str.data[k-i+1]=s.data[k];
str.length=j;
SqStringInsStr(SqStrings1,inti,SqStrings2)
{intj;
SqStringstr;
if(i<=0||i>s1.length+1)//参数不正确时返回空串
for(j=0;jstr.data[j]=s1.data[j];for(j=0;jstr.data[i+j-1]=s2.data[j];for(j=i-1;jstr.data[s2.length+j]=s1.data[j];str.length=s1.length+s2.length;returnstr;}SqStringDelStr(SqStrings,inti,intj){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j>s.length+1)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
str.data[j]=s1.data[j];
for(j=0;jstr.data[i+j-1]=s2.data[j];for(j=i-1;jstr.data[s2.length+j]=s1.data[j];str.length=s1.length+s2.length;returnstr;}SqStringDelStr(SqStrings,inti,intj){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j>s.length+1)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
str.data[i+j-1]=s2.data[j];
for(j=i-1;jstr.data[s2.length+j]=s1.data[j];str.length=s1.length+s2.length;returnstr;}SqStringDelStr(SqStrings,inti,intj){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j>s.length+1)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
str.data[s2.length+j]=s1.data[j];
str.length=s1.length+s2.length;
SqStringDelStr(SqStrings,inti,intj)
{intk;
if(i<=0||i>s.length||i+j>s.length+1)//参数不正确时返回空串
for(k=0;kstr.data[k]=s.data[k];for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
str.data[k]=s.data[k];
for(k=i+j-1;kstr.data[k-j]=s.data[k];str.length=s.length-j;returnstr;}SqStringRepStr(SqStrings,inti,intj,SqStringt){intk;SqStringstr;str.length=0;if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串returnstr;for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
str.data[k-j]=s.data[k];
str.length=s.length-j;
SqStringRepStr(SqStrings,inti,intj,SqStringt)
if(i<=0||i>s.length||i+j-1>s.length)//参数不正确时返回空串
for(k=0;kstr.data[k]=s.data[k];for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
for(k=0;kstr.data[i+k-1]=t.data[k];for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
str.data[i+k-1]=t.data[k];
for(k=i+j-1;kstr.data[t.length+k-j]=s.data[k];str.length=s.length-j+t.length;returnstr;}voidDispStr(SqStrings){inti;if(s.length>0){for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
str.data[t.length+k-j]=s.data[k];
str.length=s.length-j+t.length;
voidDispStr(SqStrings)
if(s.length>0)
{for(i=0;iprintf("%c",s.data[i]);printf("\n");}}//文件名:exp4-4.cpp#include#include#defineMaxSize100typedefstruct{chardata[MaxSize];intlength;//串长}SqString;externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中externvoidDispStr(SqString);SqStringA,B;//全局串SqStringEnCrypt(SqStringp){inti=0,j;SqStringq;while(i{for(j=0;p.data[i]!=A.data[j];j++);if(j>=p.length)//在A串中未找到p.d
printf("%c",s.data[i]);
//文件名:
exp4-4.cpp
#defineMaxSize100
{chardata[MaxSize];
intlength;//串长
externvoidStrAssign(SqString&,char[]);//在algo4-1.cpp文件中
externvoidDispStr(SqString);
SqStringA,B;//全局串
SqStringEnCrypt(SqStringp)
inti=0,j;
SqStringq;
while(i
for(j=0;p.data[i]!
=A.data[j];j++);
if(j>=p.length)//在A串中未找到p.d
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1