顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现-查字典问答网
分类选择

来自李莉的问题

  顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现,顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现二、x05主要内容设有一元多项式Am(x)和Bn(x).Am(x)=A0+A1

  顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现,

  顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现

  二、x05主要内容

  设有一元多项式Am(x)和Bn(x).

  Am(x)=A0+A1x1+A2x2+A3x3+…+Amxm

  Bn(x)=B0+B1x1+B2x2+B3x3+…+Bnxn

  请实现求M(x)=Am(x)+Bn(x)、M(x)=Am(x)-Bn(x)和M(x)=Am(x)×Bn(x).实现多项式的加、减、乘.

  三、具体要求及应提交的材料

  首先判定多项式是否稀疏

  分别采用顺序和动态存储结构实现;

  结果M(x)中无重复阶项和无零系数项;

  要求输出结果的升幂和降幂两种排列情况

  用C/C++语言编程实现上述内容,对每个问题写出一个算法实现

  说错了,只能c++哈,尽量详细哈,多给注释哈!

1回答
2020-12-19 05:21
我要回答
请先登录
官德斌

  #include

  usingnamespacestd;

  structterm

  {

  x09floatxishu;//系数

  x09intzhishu;//指数

  };

  structLNode

  {

  x09termdata;//term多项式值

  x09structLNode*next;

  };

  typedefLNode*polynomail;

  /*合并同类项*/

  polynomailhebing(polynomailHead)

  {

  x09polynomailr,q,p,Q;

  x09for(q=Head->next;q!=NULL;q=q->next)//合并同类项

  x09x09x09for(p=q->next,r=q;p!=NULL;)

  x09x09x09x09if(q->data.zhishu==p->data.zhishu)

  x09x09x09x09{

  x09x09x09x09x09q->data.xishu=q->data.xishu+p->data.xishu;

  x09x09x09x09x09r->next=p->next;

  x09x09x09x09x09Q=p;p=p->next;

  x09x09x09x09x09deleteQ;

  x09x09x09x09}

  x09x09x09x09else

  x09x09x09x09{

  x09x09x09x09x09r=r->next;

  x09x09x09x09x09p=p->next;

  x09x09x09x09}

  x09returnHead;

  }

  /*又小到大排列*/

  voidarrange1(polynomailpa)

  {

  x09polynomailh=pa,p,q,r;

  x09for(p=pa;p->next!=NULL;p=p->next);r=p;

  x09while(h->next!=r)//大的沉底

  x09{

  x09x09for(p=h;p->next!=r&&p!=r;p=p->next)

  x09x09x09if(p->next->data.zhishu>p->next->next->data.zhishu)

  x09x09x09{

  x09x09x09x09q=p->next->next;

  x09x09x09x09p->next->next=q->next;

  x09x09x09x09q->next=p->next;

  x09x09x09x09p->next=q;

  x09x09x09}

  x09x09x09r=p;//r指向参与比较的最后一个,不断向前移动

  x09}

  }

  /*由大到小排序*/

  voidarrange2(polynomailpa)

  {

  x09polynomailh=pa,p,q,r;

  x09for(p=pa;p->next!=NULL;p=p->next);r=p;

  x09while(h->next!=r)//小的沉底

  x09{

  x09x09for(p=h;p->next!=r&&p!=r;p=p->next)

  x09x09x09if(p->next->data.zhishunext->next->data.zhishu)

  x09x09x09{

  x09x09x09x09q=p->next->next;

  x09x09x09x09p->next->next=q->next;

  x09x09x09x09q->next=p->next;

  x09x09x09x09p->next=q;

  x09x09x09}

  x09x09x09r=p;//r指向参与比较的最后一个,不断向前移动

  x09}

  }

  booljudge(polynomailHead)

  {

  x09arrange2(Head);

  x09polynomailp;

  x09p=Head->next;

  x09boolxi=false;

  x09while(p!=NULL&&p->next!=NULL&&!xi)

  x09{

  x09x09if(p->data.zhishu-p->next->data.zhishu>1)

  x09x09x09xi=true;

  x09x09p=p->next;

  x09}

  x09returnxi;

  }

  /*打印多项式,求项数*/

  voidprintpolyn(polynomailP)

  {

  x09inti;

  x09polynomailq;

  x09if(P==NULL)

  x09x09coutdata.zhishu;

  x09x09r->next=s;r=s;

  x09x09p=p->next;

  x09}

  x09while(q)

  x09{

  x09x09s=newLNode;

  x09x09s->data.xishu=q->data.xishu;

  x09x09s->data.zhishu=q->data.zhishu;

  x09x09r->next=s;r=s;

  x09x09q=q->next;

  x09}

  x09r->next=NULL;

  x09if(newHead->next!=NULL&&

2020-12-19 05:24:35

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •