亲爱的小伙伴们,很多人可能对如何在C++中用链表实现多项式的加减乘法和cinde什么牌子不是很了解,所以今天我来和大家分享一些关于如何在C++中用链表实现多项式的加减乘法和cinde什么牌子的知识,希望能够帮助大家更好地了解这个话题。

本文目录一览

如何在C++中用链表实现多项式的加减乘法

刚好做过
#include<iostream>
usingnamespacestd;
#include<stdlib.h>
typedefintElemType;

structPnomial//Pnomial=Polynomial(多项式)
{
ElemTypeco,de1,de2,de3;
//co=coefficient(系数),de=degree(次数)

Pnomial*next;
};

Pnomial*ADD(Pnomial*ph);

voidmul(Pnomial*ph,Pnomial*qh);

voidmain()
{
Pnomial*ph,*qh,*p,*s,*q;
//ph表头指针,p移动指针,q临时储存结点

ph=p=newPnomial;
qh=q=newPnomial;

cout<<"\nthe1stPolynomial:"<<endl;
cout<<"givecoefficientvalue:"<<endl;

while(p->co!=0)
{
s=newPnomial;

cin>>s->co;
if(s->co!=0)
{
cout<<"x^";
cin>>s->de1;
cout<<"y^";
cin>>s->de2;
cout<<"z^";
cin>>s->de3;
cout<<"+";
}

p->next=s;
p=s;
}

cout<<"\nthe1stPolynomialend."<<endl;
cout<<"\nthe2ndPolynomial:"<<endl;
cout<<"givecoefficientvalue:"<<endl;

do
{
s=newPnomial;

cin>>s->co;
if(s->co!=0)
{
cout<<"x^";
cin>>s->de1;
cout<<"y^";
cin>>s->de2;
cout<<"z^";
cin>>s->de3;
cout<<"+";
}

q->next=s;
q=s;
}while(q->co!=0);

cout<<"the2ndPolynomialend."<<endl;

p->next=NULL;
p=ph->next;
q->next=NULL;
q=qh->next;

cout<<'\n'<<endl;
cout<<"the1stPolynomial:"<<endl;

while(p->next!=NULL)
{

if(p!=ph->next)
cout<<"+";

if(p->co!=1)
cout<<p->co;

if(p->de1!=0)
{
cout<<"x";
if(p->de1!=1)
cout<<"^"<<p->de1;
}
if(p->de2!=0)
{
cout<<"y";
if(p->de2!=1)
cout<<"^"<<p->de2;
}
if(p->de3!=0)
{
cout<<"z";
if(p->de3!=1)
cout<<"^"<<p->de3;
}
p=p->next;
}
cout<<"\nthe1stPolynomialend."<<endl;
cout<<"\nthe2ndPolynomial:"<<endl;
while(q->next!=NULL)
{

if(q!=qh->next)
cout<<"+";

if(q->co!=1)
cout<<q->co;

if(q->de1!=0)
{
cout<<"x";
if(q->de1!=1)
cout<<"^"<<q->de1;
}
if(q->de2!=0)
{
cout<<"y";
if(q->de2!=1)
cout<<"^"<<q->de2;
}
if(q->de3!=0)
{
cout<<"z";
if(q->de3!=1)
cout<<"^"<<q->de3;
}
q=q->next;
}
cout<<"\nthe2ndPolynomialend."<<endl;
cout<<'\n'<<endl;
mul(ph,qh);
}

voidmul(Pnomial*ph,Pnomial*qh)
{

Pnomial*p,*q;

Pnomial*re,*di,*temp;//新建一个链表储存结果
//re=result(结果),di=displace(移动指针)

intcounter=0;
//计数变量,记录p赋值给temp的起始结点

re=di=newPnomial;
for(p=ph->next;p->next!=NULL;p=p->next)
{
for(q=qh->next;q->next!=NULL;q=q->next)
{
temp=newPnomial;
temp->co=p->co*q->co;
temp->de1=p->de1+q->de1;
temp->de2=p->de2+q->de2;
temp->de3=p->de3+q->de3;
di->next=temp;
di=temp;
if(p==ph->next&&q==qh->next)
re=di;
}
}
di->next=NULL;
cout<<"theresultPolynomial:"<<endl;
di=ADD(re);
//di回到表头结点,准备打印结果多项式
//di=re->next;//di回到表头结点,准备整理多项式
re=di;

while(di!=NULL)
{
if(di!=re)
cout<<"+";

if(di->co!=1)
cout<<di->co;

if(di->de1!=0)
{
cout<<"x";
if(di->de1!=1)
cout<<"^"<<di->de1;
}
if(di->de2!=0)
{
cout<<"y";
if(di->de2!=1)
cout<<"^"<<di->de2;
}
if(di->de3!=0)
{
cout<<"z";
if(di->de3!=1)
cout<<"^"<<di->de3;
}
di=di->next;

}
}

Pnomial*ADD(Pnomial*ph)
{

Pnomial*re,*p,*q;
p=ph;
q=p->next;
Pnomial*di,*temp;//新建一个链表储存结果
//re=result(结果),di=displace(移动指针)

re=di=newPnomial;

while(p!=NULL)
{
temp=newPnomial;
temp->co=p->co;
temp->de1=p->de1;
temp->de2=p->de2;
temp->de3=p->de3;

for(;q!=NULL;)
{
if(p->de1==q->de1&&p->de2==q->de2&&p->de3==q->de3)
{
temp->co+=q->co;
p->next=q->next;
deleteq;
q=p->next;
}
else
q=q->next;
}

di->next=temp;
di=temp;
if(p==ph)
re=di;
p=p->next;
if(p!=NULL)
q=p->next;
}
di->next=NULL;
returnre;

}

减法的自己改改,很简单

返回目录

cinde什么牌子

cinde什么牌子?这是一款阿迪达斯的牌子,也是一款潘多拉的牌子,它就是一款法拉利的牌子,也是一款兰博基尼的牌子。

返回目录

总结:以上就是本站针对你的问题搜集整理的答案,希望对你有所帮助。