欢迎来到天天文库
浏览记录
ID:16628357
大小:495.89 KB
页数:44页
时间:2018-08-23
《数据结构课程设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、景德镇陶瓷大学数据结构课程设计报告题目:371416院系名称:信息工程学院专业名称:信息与计算科学班级:15信息一班学生姓名:孟喜洋学号:115060200101指导教师:杨利华设计起止时间:2017.6.5——2017.6.16题目3一元多项式计算1、实验目的1)、能够按照指数降序排列建立并输出多项式;2)、能够完成两个多项式的相加、相减,并将结果输入。2、实验要求在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法。
2、3.存储结构TypedefstructPNode;{floatcoef;Intexpn;StructPNode*next;}Pnode,*Polynomial;4.基本算法1.概要设计1.功能:将要进行运算的多项式输入输出。2.数据流入:要输入的多项式的系数与指数。3.数据流出:合并同类项后的多项式。4.程序流程图:多项式输入流程图如图所示。5.测试要点:输入的多项式是否正确,若输入错误则重新输入开始申请结点空间++++++++++++++++++++++++++++++++++++++++++++++++++++
3、+++num输入多项式的项数指针数组temp[i]中(i=1~num)输入多项式各项的系数x,指数y输出已输入的多项式合并同类项结束否是是否输入正确2、多项式的加法开始定义存储结果的空链r是否输出存储多项式的和的链r结束是否同指数项系数相加后存入r中直接把p中各项存入r中直接把q中各项存入r存储多项式2的空链Q是否为空存储多项式1的空链P是否为空合并同类项3、多项式的减法开始定义存储结果的空链r是否输出存储多项式的和的链r结束是否同指数项系数相加后存入r中把p中各项系数改变符号后存入r中直接把q中各项存入r存储多项
4、式2的空链Q是否为空存储多项式1的空链P是否为空合并同类项5.源程序#include#include#includeusingnamespacestd;structNode{floatcoef;//结点类型intexp;};typedefNodepolynomial;structLNode{polynomialdata;//链表类型LNode*next;};typedefLNode*Link;voidCreateLink(Link&L,intn);voidP
5、rintList(LinkL);voidPolyAdd(Link&pc,Linkpa,Linkpb);voidPolySubstract(Link&pc,Linkpa,Linkpb);voidCopyLink(Link&pc,Linkpa);voidPolyMultiply(Link&pc,Linkpa,Linkpb);intJudgeIfExpSame(Linkpa,Linke);voidDestroyLink(Link&L);intCompareIfNum(inti);voidDestroyLink(Link&
6、L){Linkp;p=L->next;while(p){L->next=p->next;deletep;p=L->next;}deleteL;L=NULL;}//创建含有n个链表类型结点的项,即创建一个n项多项式voidCreateLink(Link&L,intn){if(L!=NULL){DestroyLink(L);}Linkp,newp;L=newLNode;L->next=NULL;(L->data).exp=-1;//创建头结点p=L;for(inti=1;i<=n;i++){newp=newLNode;
7、cout<<"请输入第"<>(newp->data).coef;cout<<"指数:";cin>>(newp->data).exp;if(newp->data.exp<0){cout<<"您输入有误,指数不允许为负值!"<next=NULL;p=L;if(newp->data.coef==0){cout<<"系数为零,重新输入!"<8、-;continue;}while((p->next!=NULL)&&((p->next->data).exp<(newp->data).exp)){p=p->next;//p指向指数最小的那一个}if(!JudgeIfExpSame(L,newp)){newp->next=p->next;p->next=newp;}else{cout<<"输入的该项指数与
8、-;continue;}while((p->next!=NULL)&&((p->next->data).exp<(newp->data).exp)){p=p->next;//p指向指数最小的那一个}if(!JudgeIfExpSame(L,newp)){newp->next=p->next;p->next=newp;}else{cout<<"输入的该项指数与
此文档下载收益归作者所有