数据结构课程设计报告一元多项式加法减法乘法运算的实现.doc
《数据结构课程设计报告一元多项式加法减法乘法运算的实现.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告一元多项式加法减法乘法运算的实现.doc(28页珍藏版)》请在三一办公上搜索。
1、-1.一元多项式加法、减法、乘法运算的实现1.1设计容及要求1)设计容1使用顺序存储构造实现多项式加、减、乘运算。例如:,求和结果:2使用链式存储构造实现多项式加、减、乘运算,求和结果:2设计要求1用C语言编程实现上述实验容中的构造定义和算法。2要有main()函数,并且在main()函数中使用检测数据调用上述算法。3用switch语句设计如下选择式菜单。 *数据构造综合性实验* *一、多项式的加法、减法、乘法运算* * 1.多项式创立 * * 2.多项式相加 * * 3.多项式相减 * 4.多项式相乘 * 5.清空多项式 * 0.退出系统 * 请选择05 *请选择0-5:1.2数据构造设计根
2、据下面给出的存储构造定义:#define MA*SIZE 20 /定义线性表最大容量 /定义多项式项数据类型typedef structfloat coef; /系数int e*pn; /指数 term,elemType;typedef structterm termsMA*SIZE; /线性表中数组元素int last; /指向线性表中最后一个元素位置 SeqList;typedef SeqList polynomial;1.3根本操作函数说明polynomial*Init_Polynomial();/初始化空的多项式int PloynStatus(polynomial*p)/判断多项式的状
3、态int Location_Element(polynomial*p,term *)在多项式p中查找与*项指数一样的项是否存在int Insert_ElementByOrder(polynomial*p,term *)/在多项式p中插入一个指数项*int CreatePolyn(polynomial*P,int m)/输入m项系数和指数,建立表示一元多项式的有序表pchar pare(term term1,term term2)/比拟指数项term1和指数项term2polynomial*addPloyn(polynomial*p1,polynomial*p2)/将多项式p1和多项式p2相加,
4、生成一个新的多项式polynomial*subStractPloyn(polynomial*p1,polynomial*p2)/多项式p1和多项式p2相减,生成一个新的多项式polynomial*mulitPloyn(polynomial*p1,polynomial*p2)/多项式p1和多项式p2相乘,生成一个新的多项式void printPloyn(polynomial*p)/输出在顺序存储构造的多项式p1.4程序源代码#include#include#include#define NULL 0#define MA*SIZE 20typedef structfloat coef;int e*
5、pn;term,elemType;typedef structterm termsMA*SIZE;int last;SeqList;typedef SeqList polynomial;void printPloyn(polynomial*p);int PloynStatus(polynomial*p)if(p=NULL)return -1;else if(p-last=-1)return 0;elsereturn 1;polynomial*Init_Polynomial()polynomial*P;P=new polynomial;if(P!=NULL)P-last=-1;return P;
6、elsereturn NULL;void Reset_Polynomial(polynomial*p)if(PloynStatus(p)=1)p-last=-1;int Location_Element(polynomial*p,term *)int i=0;if(PloynStatus(p)=-1)return 0;while(ilast & p-termsi.e*pn!=*.e*pn)i+;if(ip-last)return 0;elsereturn 1;int Insert_ElementByOrder(polynomial*p,term *)int j;if(PloynStatus(p
7、)=-1)return 0;if(p-last=MA*SIZE-1)coutThe polym is full!last;while(p-termsj.e*pn=0) p-termsj+1=p-termsj; j-; p-termsj+1=*;p-last+;return 1;int CreatePolyn(polynomial*P,int m)float coef;int e*pn;term *;if(PloynStatus(P)=-1)return 0;if(mMA*SIZE)printf(顺序表溢出n);return 0;elseprintf(请依次输入%d对系数和指数.n,m);for
8、(int i=0;iterm2.e*pn)return;else if(term1.e*pnterm2.e*pn)return;elsereturn=;polynomial*addPloyn(polynomial*p1,polynomial*p2)int i,j,k;i=0;j=0;k=0;if(PloynStatus(p1)=-1)|(PloynStatus(p2)=-1)return NULL;polynomial*p3=Init_Polynomial();while(ilast & jlast)switch(pare(p1-termsi,p2-termsj)case:p3-termsk+
9、=p1-termsi+;p3-last+;break;casetermsk+=p2-termsj+;p3-last+;break;case=:if(p1-termsi.coef+p2-termsj.coef!=0)p3-termsk.coef=p1-termsi.coef+p2-termsj.coef;p3-termsk.e*pn=p1-termsi.e*pn;k+;p3-last+;i+;j+;while(ilast)p3-termsk+=p1-termsi+;p3-last+;return p3;polynomial*subStractPloyn(polynomial*p1,polynom
10、ial*p2)int i;i=0;if(PloynStatus(p1)!=1)|(PloynStatus(p2)!=1)return NULL;polynomial*p3=Init_Polynomial();p3-last=p2-last;for(i=0;ilast;i+)p3-termsi.coef=-p2-termsi.coef;p3-termsi.e*pn=p2-termsi.e*pn;p3=addPloyn(p1,p3);return p3;polynomial*mulitPloyn(polynomial*p1,polynomial*p2)int i;int j;int k;i=0;i
11、f(PloynStatus(p1)!=1)|(PloynStatus(p2)!=1)return NULL;polynomial*p3=Init_Polynomial();polynomial*p=new polynomial*p2-last+1;for(i=0;ilast;i+)for(k=0;klast;k+)pk=Init_Polynomial();pk-last=p1-last;for(j=0;jlast;j+)pk-termsj.coef=p1-termsj.coef*p2-termsk.coef;pk-termsj.e*pn=p1-termsj.e*pn+p2-termsk.e*p
12、n;p3=addPloyn(p3,pk);return p3;void printPloyn(polynomial*p)int i;for(i=0;ilast;i+)if(p-termsi.coef0 & i0)cout+termsi.coef;elsecouttermsi.coef;cout*termsi.e*pn;coutendl;void menu()couttt*数据构造综合性实验*endl;couttt*一、多项式的加、减、乘法运算*endl;couttt* 1.多项式创立 *endl;couttt* 2.多项式相加 *endl;couttt* 3.多项式相减 *endl;coutt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 一元 多项式 加法 减法 乘法 运算 实现
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1189843.html