- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验汇总
实验一:针对链式或顺序存储的线性表实现指定的操作
题1 问题描述:有两个指数递减的一元多项式,写一程序先求这两个多项式的和,再求它们的积。
#include iostream
using namespace std;
typedef struct Poly//定义一个多项式
{
float coef;//多项式系数
int exp;//多项式指数
struct Poly *next;
}Poly;
typedef Poly *Polynomial;//重定义一个多项式名字
void creatPoly(Polynomial P,int n)
{
P = new Poly;
P-next=NULL;
Poly *p,*q;
p=P;
for(int i=1;i=n;i++)
{
q=new Poly;
cout第i项的系数:;
cinq-coef;//输入系数
cout第i项的指数:;
cinq-exp;
q-next=NULL;
p-next=q;
p=q;
}
}
int lengthPoly(Polynomial P)//计算多项式项数的函数
{
Poly *p;
int i;
p=P-next;
i=0;
while(p!=NULL)
{
p=p-next;
i++;
}
return i;
}
void outputPoly(Polynomial P)//输出合并后的多项式
{
Poly *p;
p=P-next;
int i;
for(i=0;ilengthPoly(P);i++)
{
coutp-coef^ p-exp +;
p=p-next;
}
cout0endl;
}
Poly * addPoly(Polynomial Pa,Polynomial Pb)//A与B相加
{
Poly *p,*q,*h,*s;
p=Pa-next;
q=Pb-next;
h=Pa;
while (pq)//A与B都不为0
{
if(p-expq-exp)//A的指数小于B的指数
{
Pb-next=q-next;
s=q;
h-next=s;
s-next=p;
h=s;
q=Pb-next;
}
else if(p-exp q-exp)//A的指数大的话
{
h=p;
p=p-next;
}
else//A与B的指数相等的话
{
p-coef=p-coef+q-coef;//A与B对应项系数求和
if(p-coef==0)//系数和为0
{
Poly *temp1;
Poly *temp2;
temp1=p;
temp2=q;
h-next=p-next;//删除该项数
p=p-next;
q=q-next;
delete temp1;
delete temp2;
}
else//A与B的指数相等的话,系数和不为0
{
Poly *temp;
temp=q;
h=p;
p=p-next;
q=q-next;
delete temp;
}
}
}
if(q) h-next=q;
delete Pb;
return Pa;
}
void main()
{
Polynomial Pa,Pb,Pc;//定义三个多项式类型的变量
int a,b;//a,b为两个多项式的整体的项数
cout请输入第一个一元多项式的项数:;
cina;
cout请输入第二个一元多项式的项数:;
cinb;
cout请输入一元a项式(先输入系数,再输入指数):;
creatPoly(Pa,a);
cout请输入一元b项式(先输入系数,再输入指数):;
creatPoly(Pb,b);
Pc=addPoly(Pa,Pb);
cout相加得到的多项式:;
outputPoly(Pc);
}
#include?iostreamusing?namespace?std;typedef?struct?Poly//定义一个多项式{float?coef;//多项式系数int???exp;//多项式指数struct?Poly?*next;}Poly;typedef?Poly?*Polynomial;//重定义一个多项式名字??void?creatPoly(Polynomial?P,int?n){P?=?new?Poly;P-next=NULL;?Poly?*p,*q;p=P;?for(int?i=1;i=n;i++){q=new?Poly;cout第i项的系数:;cinq-coef;cout第i项的指数:;cinq-exp;q-next=NULL;p-next=q;p=q;}}?int?lengthPoly(Polyn
文档评论(0)