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

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

ID:38732342

大小:62.00 KB

页数:7页

时间:2019-06-18

一元多项式的表示与相加运算_第1页
一元多项式的表示与相加运算_第2页
一元多项式的表示与相加运算_第3页
一元多项式的表示与相加运算_第4页
一元多项式的表示与相加运算_第5页
资源描述:

《一元多项式的表示与相加运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、西安邮电大学(计算机学院)课内实验报告实验名称:一元多项式的表示与相加运算专业名称:通信工程班级:通工1312学生姓名:周鹏飞学号(8位):03131044指导教师:陈琳实验日期:一.实验目的及实验环境1、实现单链表的建立2、实现一元多项式的表示3、实现一元多项式的相加运算4、VC++6.0运行环境二.实验内容1、实现一元多项式的相加运算三.方案设计为实现多项式的相加运算1)用两个单链表分别表示两个一元多项式。2)多项式向相加的运算规则指数相同项的对应系数相加,若和不为0,则构成“和多项式”中的一项。指数不相同的项仍按升幂顺序复抄到“和多

2、项式”中。以单链表polya和polyb分别表示两个一元多项式A和B,A+B的求和运算,就等同于单链表的插入问题,因此“和多项式”中的结点无需另生成。为实现处理,设p、q分别指向单链表polya和polyb的当前项,比较p、q结点的指数项,由此得到以下运算规则:若p->expexp,则结点p所指的结点应是“和多项式”中的一项,令指针p后移。若p->exp=q->exp,则将两个结点中的系数相加,当和不为0是修改结点p的系数域,释放q结点;若和尾0,则和多项式中无此项,从A中删去p结点,同时释放p和q结点。若p->exp>q->ex

3、p,则结点q所指的结点应是“和多项式”中的一项,将结点q插入在结点p之前,且令指针q在原来的链表上后移。四.测试数据及运行结果截图如下:五.总结实验过程中遇到的问题及解决办法:问题:写完程序后,出现错误。解决方法:查看程序提示,双击左键,寻找错误点。找到错误,并进行修改。不能熟练运用链栈及指针解决办法:查阅书籍,提高自己对链表及指针的认识,掌握使用链表及指针的技巧对设计及调试过程的心得体会:(1)编写的程序要按照正当的程序要求,不能遵循人的思维。(2)编写程序时注意对链栈及指针的使用,注意各个出错的点及逻辑性错误。(3)提高自己对链表与指

4、针的认识。六.附录:源代码(电子版)实现代码如下:(1)建立多项式Polynomial*Create(void){Polynomial*head,*rear,*s;intc,e;head=(Polynomial*)malloc(LEN);//建立多项式头结点rear=head;//rear始终指向单链表的尾,便于尾插法建表printf("系数(当系数输入为0时,多项式结束):");scanf("%d",&c);printf("");printf("指数:");scanf("%d",&e);printf("");while(c!=0

5、){s=(Polynomial*)malloc(LEN);s->cofe=c;s->expn=e;rear->next=s;rear=s;printf("系数(当系数输入为零时,多项式结束):");scanf("%d",&c);printf("");printf("指数:");scanf("%d",&e);printf("");}rear->next=NULL;return(head);}(2)两多项式相加Polynomial*AddPolyn(Polynomial*pa,Polynomial*pb){Polynomial*qa=

6、pa->next;Polynomial*qb=pb->next;Polynomial*headc,*pc,*qc;pc=(Polynomial*)malloc(sizeof(Polynomial));pc->next=NULL;headc=pc;while(qa!=NULL&&qb!=NULL){qc=(Polynomial*)malloc(sizeof(Polynomial));if(qa->expnexpn){qc->cofe=qa->cofe;qc->expn=qa->expn;qa=qa->next;}elseif(qa

7、->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;}elsefree(qc);}while(qa!=NULL){qc=(Polynomial*)malloc(sizeof(Polynomial));qc->

8、cofe=qa->cofe;qc->expn=qa->expn;qa=qa->next;qc->next=pc->next;pc->next=qc;pc=qc;}while(qb!=NULL)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。