数据结构课程设计报告一元多项式的计算

数据结构课程设计报告一元多项式的计算

ID:10656955

大小:132.00 KB

页数:12页

时间:2018-07-07

数据结构课程设计报告一元多项式的计算_第1页
数据结构课程设计报告一元多项式的计算_第2页
数据结构课程设计报告一元多项式的计算_第3页
数据结构课程设计报告一元多项式的计算_第4页
数据结构课程设计报告一元多项式的计算_第5页
资源描述:

《数据结构课程设计报告一元多项式的计算》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、一元多项式的计算一、需求分析建立一元多项式并按照指数降序排列输出多项式,将一元多项式输入并存储在内存中,能够完成两个多项式的加减运算并输出结果二、概要设计存储结构:一元多项式的表示在计算机内可以用链表来表示,为了节省存储空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。基本算法:1、输入输出(1)功能:将要

2、进行运算的多项式输入输出。(2)数据流入:要输入的多项式的系数与指数。(3)数据流出:合并同类项后的多项式。(4)程序流程图:多项式输入流程图如图1所示。(5)测试要点:输入的多项式是否正确,若输入错误则重新输入图表1开始申请结点空间+++++++++++++++++++++++++++++++++++++++++++++++++++++++num指针数组temp[i]中(i=1~num)输入多项式各项的系数x,指数y输出已输入的多项式合并同类项结束否是是否输入正确2、多项式的加法(1)功能:将两多项式相

3、加。(2)数据流入:输入函数。(3)数据流出:多项式相加后的结果。(4)程序流程图:多项式的加法流程图如图2所示。(5)测试要点:两多项式是否为空,为空则提示重新输入,否则,进行运算。图表2开始定义存储结果的空链r是否输出存储多项式的和的链r结束是否同指数项系数相加后存入r中直接把p中各项存入r中直接把q中各项存入r存储多项式2的空链Q是否为空存储多项式1的空链P是否为空合并同类项3、多项式的减法(1)功能:将两多项式相减。(2)数据流入:调用输入函数。(3)数据流出:多项式相减后的结果。(4)程序流程图:

4、多项式的减法流程图如图3所示。(5)测试要点:两多项式是否为空,为空则提示重新输入,否则,进行运算。图表3开始定义存储结果的空链pdpd是否合并同类项结束是否同指数项系数相加后存入r中把p中各项系数改变符号后存入r中直接把q中各项存入r存储多项式2的空链Q是否为空存储多项式1的空链P是否为空输出存储多项式的和的链r一、详细设计#include#include#includetypedefstructPolynomial{floatcoef;intex

5、pn;structPolynomial*next;}*Polyn,Polynomial;/**************合并同类项********************/voidInsert(Polynp,Polynh){if(p->coef==0)//系数为0的话释放结点free(p);else//如果系数不为0{Polynq1,q2;q1=h;q2=h->next;while(q2&&p->expnexpn)//查找插入位置{q1=q2;q2=q2->next;}if(q2&&p->expn=

6、=q2->expn)//将指数相同相合并{q2->coef+=p->coef;free(p);if(!q2->coef)//系数为0的话释放结点{q1->next=q2->next;free(q2);}}else{//指数为新时将结点插入p->next=q2;q1->next=p;}}}/*****************合并同类项,并按升幂排序*****************/PolynHeBing(Polyn&L){Polynp1,p2,p3,p4,p5,p6;floatt1;intt2;p1=L->

7、next;while(p1!=NULL)//非递减顺序排列{p2=p1->next;while(p2!=NULL){if(p1->expn>p2->expn){t1=p1->coef;t2=p1->expn;p1->coef=p2->coef;p1->expn=p2->expn;p2->coef=t1;p2->expn=t2;}p2=p2->next;}p1=p1->next;}p3=L->next;while(p3!=NULL)//合并同类项{p4=p3->next;while(p4!=NULL){if(

8、p3->expn==p4->expn){p3->coef=p3->coef+p4->coef;p3->next=p4->next;free(p4);p4=p3->next;}elsep4=p4->next;}p3=p3->next;}p5=L;while(p5->next!=NULL)//删除零项{p6=p5->next;if(p6->coef==0){p5->next=p6->next;free(p6);}p5

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

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

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