资源描述:
《一元多项式的加法乘法运算的实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据结构课题设计报告设计题目:一元多项式的加、乘法的实现姓名:班级:学号:指导老师:目录一、实验题目3二、设计内容3三、设计实现3四、概要设计41,按要求输入一元多项式的系数42,计算一元多项式的力U法43,输出计算结果44,按要求输入一元多项式的系数45,计算一元多项式的乘法46,输出计算结果47,退出4五、程序流程图51,加法运算52,乘法运算6六、源程序7七、程序运行界面图131,加法运行输入项数132,输入每一项的系数及指数133,算出加法运算结果及乘法运行输入项数144,入乘法运算每一项的系数及指数145,算岀乘法运算的结果15丿I、‘C?得体会・
2、16・课程设计评分表17一、实验题目一元多嗣皿去、剩疑算的实现二'设计内容该程序的功能是实现一个一元多项式运算。能够完成两个多项式的相加、相乘的运算并且输出正确的答案。三'设计实现一元多项式加法,乘法运算的实现1・根据输入创建一元多项式,采用顺序和链表存储结构实现顺序存储结构:在计算机内部可以采用不同方式存储一个线性表,其中最简单的方式就是用一组地址连续的存储单元来依次存储线性表中的数据元素。对一元多项式存储结构的选择,输入多项式采用头插法的方式,输入多项式中一个项的系数和指数,就产生一个新的节点,建立起它的右指针,并用头节点指向它;一元多项式可以用顺序和链
3、表两种存储结构表示,顺序结构的最大长度很难确定。单链表的结构体可以用来存储多项式的系数,指数,便于实现任意多项式的运算。2.创建的的第个一元多项式用于实现加法的运算,第二个一元多项式用于实现乘法的运算。3•运算完毕后,退出运行程序概要设计1,按要求输入一元多项式的系数2,计算一元多项式的加法3,输出计算结果4,按要求输入一元多项式的系数5,计算一元多项式的乘法6,输出计算结果7,退出五、程序流程图1,加法运算2,乘法运算开始Y▼退出六、源程序#inelude〃定义结构体类型〃系数〃指数〃结构体指针#include#inc
4、lude#defineNULLOtypedefstructNode{floatcoef;intexpn;structNode*next;}Node,*Linklist;structpolynode{intc;inte;structpolynode*next;};structpolynode*creat(void){intc,e;structpolynode*head=NULL;structpolynode*pl,*p2,*l/*r;while(scanf("%d,%d%*c",&cz&e),c11e)p2=(structpolynode*
5、)malloc(sizeof(structpolynode));p2->c=c;p2->e=e;p2->next=NULL;if(head==NULL){head=p2;continue;}for(l=r=head;l!=NULL&&(l->e)next)r=l;if(l==head&&l->e>e)head=p2;elser->next=p2;p2->next=l;returnhead;voidoutput(structpolynode*head){structpolynode*pl;pl=head;if(pl==NULL){printf(
6、”multinomialiszero");return;}printfCAn");while(pl!=NULL){printf(pl!=head&&(pl->c)>0?”+%d”:”%cT,pl・>c);printf(pl->e?,,xA%d,,:,,,,,pl->e);pl=pl・>next;}printfC'Xn");}structpolynode*add(structpolynode*headl,structpolynode*head2){structpolynode*pl,*p2,*r,*l,*h;h=r=pl=headl;p2=head2;
7、if(headl==NULL){h=head2;returnh;}while(pl!=NULL&&p2!二NULL){if(pl->e==p2->e){pl->c+=p2->c;p2=p2->next;r=pl;pl=pl・>next;continue;}讦(pl->ee){r=pl;pl=pl->next;continue;}讦(pl->e>p2->e)I=p2p2=p2->next;if(pl==h)h=l;elser・>next=l;l->next=pl;r二I;continue;}}讦(pl==NULL)r->next=p2;returnh
8、;}structpolynode*mul(struc