一元多项式的表示与相加运算.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一元多项式的表示与相加运算

西 安 二. 实验内容 1、实现一元多项式的相加运算 三.方案设计 为实现多项式的相加运算 1)用两个单链表分别表示两个一元多项式。 2)多项式向相加的运算规则 指数相同项的对应系数相加,若和不为0,则构成“和多项式”中的一项。 指数不相同的项仍按升幂顺序复抄到“和多项式”中。 以单链表polya和polyb分别表示两个一元多项式A和B,A+B的求和运算,就等同于单链表的插入问题,因此“和多项式”中的结点无需另生成。 为实现处理,设p、q分别指向单链表polya和poly b的当前项,比较p、q结点的指数项,由此得到以下运算规则: 若p-expq-exp,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。 若p-exp=q-exp,则将两个结点中的系数相加,当和不为0是修改结点p的系数域,释放q结点;若和尾0,则和多项式中无此项,从A中删去p结点,同时释放p和q结点。 若p-expq-exp,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。 四.测试数据及运行结果 截图如下: 五.总结 实验过程中遇到的问题及解决办法: 问题:写完程序后,出现错误。 解决方法:查看程序提示,双击左键,寻找错误点。找到错误,并进行修改。 不能熟练运用链栈及指针 解决办法:查阅书籍,提高自己对链表及指针的认识,掌握使用链表及指针的技巧 对设计及调试过程的心得体会: 编写的程序要按照正当的程序要求,不能遵循人的思维。 编写程序时注意对链栈及指针的使用,注意各个出错的点及逻辑性错误。 提高自己对链表与指针的认识。 六.附录:源代码(电子版) 实现代码如下: (1)建立多项式 Polynomial * Create(void) { Polynomial *head, *rear, *s; int c, e; head = (Polynomial *)malloc(LEN); //建立多项式头结点 rear = head; //rear始终指向单链表的尾,便于尾插法建表 printf(系数(当系数输入为0时,多项式结束):); scanf(%d,c); printf(\n); printf(指数:); scanf(%d,e); printf(\n); while(c!=0) { s = (Polynomial *)malloc(LEN); s-cofe = c; s-expn = e; rear-next = s; rear = s; printf(系数(当系数输入为零时,多项式结束):); scanf(%d,c); printf(\n); printf(指数:); scanf(%d,e); printf(\n); } rear-next = NULL; return (head); } 两多项式相加 Polynomial* AddPolyn(Polynomial* pa,Polynomial* pb) { Polynomial *qa = pa-next; Polynomial *qb = pb-next; Polynomial *headc, *pc, *qc; pc=(Polynomial *)malloc(sizeof (Polynomial)); pc-next = NULL; headc = pc; while(qa != NULLqb != NULL) { qc = (Polynomial *)malloc(sizeof(Polynomial)); if(qa-expn qb-expn) { qc-cofe = qa-cofe; qc-expn = qa-expn; qa = qa-next; } else if(qa-expn == qb-expn) { qc-cofe = qa-cofe+qb-cofe; qc-expn = qa-expn; qa = qa-next; qb = qb-next; } else { qc-cofe = qb-cofe; qc-expn = qb-expn; qb = qb-next; } if(qc-cofe != 0) { qc-next = pc-next; pc-next = qc; pc = qc; } else free(qc); } wh

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档