数据结构戴敏线性表实验计算器.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

的表尾

的表尾

(1)

#includestdio.h

#includestdlib.htypedefstructPolyNode{

intcoef;//系数

intexp;//指数

structPolyNode*next;//指针域

}PolyNode;

typedefPolyNode*Polynomail;

PolynomailA;//定义多项式A

PolynomailCreatList()

{PolynomailP;

Polynomaila;

intx;inty;//

P=(PolyNode*)malloc(sizeof(PolyNode));

P-next=NULL;

printf(请按照指数的升序输入多项式:

\n);

scanf(%d,%d,x,y);

while(x!=0)

{a=(PolyNode*)malloc(sizeof(PolyNode));

a-coef=x;a-exp=y;

a-next=P-next;P-next=a;

scanf(%d,%d,x,y);

}

returnP;

}

voidPrintList(Polynomaila)

{Polynomailp;

printf(您输入的多项式是:);p=a-next;

while(p-next!=NULL)

{ printf((%dxA%d)+,p-coef,p-exp);

p=p-next;

}

printf((%dxA%d)\n,p-coef,p-exp);

}

//加法

voidAdd_Poly(PolynomailA,PolynomailB)

{ 〃多项式A,B用带头节点的单链表表示

PolynomailC,S;

PolynomailPa,Pb,Pc;

intx;

Pa=A-next;Pb=B-next;

C=(PolyNode*)malloc(sizeof(PolyNode));

Pc=C;Pc-next=NULL;//创建和多项式链

表C的头节点

while(PaPb)

{if(Pa-exp==Pb-exp){x=Pa-coef+Pb-coef;//指数相等时

系数相加

if(x!=0)

{ S=(PolyNode

*)malloc(sizeof(PolyNode));

〃为新的和多项式节点

申请空间

S-coef=x;S-exp=Pa-exp;S-next=NULL;

Pc-next=S;Pc=S;

//将和节点插入到和多

项式链表C的表尾

}

Pa=Pa-next;Pb=Pb-next;

}

else

if(Pa-expPb-exp)

{ S=(PolyNode

*)malloc(sizeof(PolyNode));

//为新的和多项式节点申请空间

S-coef=Pa-coef;

S-exp=Pa-exp;

S-next=NULL;

Pc-next=S;//将和节点插入到C

Pc=S;

Pa=Pa-next;

}

else

{ S=(PolyNode

*)malloc(sizeof(PolyNode));

//为新的和多项式节点申请空间

S-coef=Pb-coef;

S-exp=Pb-exp;

S-next=NULL;

Pc-next=S;//将和节点插入到C的表尾

Pc=S;

Pb=Pb-next;

}

}//while

while(Pa)//若多项式A未处理完

{ S=(PolyNode

*)malloc(sizeof(PolyNode));

//为新的和多项式节点申请空间

S-coef=Pa-coef;

S-exp=Pa-exp;

S-next=NULL;

Pc-next=S;//将和节点插入到C的表尾

Pc=S;

Pa=Pa-next;

}

while(Pb)//若多项式B未处理完

{ S=(PolyNode

*)malloc(sizeof(PolyNode));

//为新的和多项式节点申请空间

S-coef=Pb-coef;

S-exp=Pb-exp;

S-next=NULL;

Pc-next=S;//将和节点插入到C的表尾

Pc=S;

Pb=Pb-next;

}

Polynomailp;

printfC您输入的多项式和是:);p=C-next;

while(p-next!=NULL)

{ printf((%dxA%d)+,p-coef,p-exp);

p=p-next;

}

printf((%dxA%d)\n,p-coef,p-exp);

}

//减法

voidSUB_Poly(PolynomailA,PolynomailB)

{ 〃多项式A,B用带头节点的单链表表示

PolynomailC,S;

Polynomai

文档评论(0)

suijiazhuang1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档