顺序链式一元多项式加法、减法、乘法运算实现(共12页)

上传人:hs****ma 文档编号:470544817 上传时间:2023-03-15 格式:DOC 页数:12 大小:110.50KB
返回 下载 相关 举报
顺序链式一元多项式加法、减法、乘法运算实现(共12页)_第1页
第1页 / 共12页
顺序链式一元多项式加法、减法、乘法运算实现(共12页)_第2页
第2页 / 共12页
顺序链式一元多项式加法、减法、乘法运算实现(共12页)_第3页
第3页 / 共12页
顺序链式一元多项式加法、减法、乘法运算实现(共12页)_第4页
第4页 / 共12页
顺序链式一元多项式加法、减法、乘法运算实现(共12页)_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《顺序链式一元多项式加法、减法、乘法运算实现(共12页)》由会员分享,可在线阅读,更多相关《顺序链式一元多项式加法、减法、乘法运算实现(共12页)(12页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上1.1设计内容及要求1)设计内容(1)使用顺序存储结构实现多项式加、减、乘运算。例如:,求和结果:(2)使用链式存储结构实现多项式加、减、乘运算,求和结果:2)设计要求(1)用C语言编程实现上述实验内容中的结构定义和算法。(2)要有main()函数,并且在main()函数中使用检测数据调用上述算法。(3)用switch语句设计如下选择式菜单。 *数据结构综合性实验* *一、多项式的加法、减法、乘法运算* * 1.多项式创建 * * 2.多项式相加 * * 3.多项式相减 * 4.多项式相乘 * 5.清空多项式 * 0.退出系统 * 请选择(05) *请选择(0-5):

2、1.2数据结构设计根据下面给出的存储结构定义:#define MAXSIZE 20 /定义线性表最大容量 /定义多项式项数据类型typedef structfloat coef; /系数int expn; /指数 term,elemType;typedef structterm termsMAXSIZE; /线性表中数组元素int last; /指向线性表中最后一个元素位置 SeqList;typedef SeqList polynomial;1.3基本操作函数说明 polynomial*Init_Polynomial();/初始化空的多项式int PloynStatus(polynomial

3、*p)/判断多项式的状态 int Location_Element(polynomial*p,term x)在多项式p中查找与x项指数相同的项是否存在int Insert_ElementByOrder(polynomial*p,term x)/在多项式p中插入一个指数项xint CreatePolyn(polynomial*P,int m)/输入m项系数和指数,建立表示一元多项式的有序表pchar compare(term term1,term term2)/比较指数项term1和指数项term2polynomial*addPloyn(polynomial*p1,polynomial*p2)/

4、将多项式p1和多项式p2相加,生成一个新的多项式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 MAXSIZE 20typedef structfl

5、oat coef;int expn;term,elemType;typedef structterm termsMAXSIZE;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-la

6、st=-1;return P;elsereturn NULL;void Reset_Polynomial(polynomial*p)if(PloynStatus(p)=1)p-last=-1;int Location_Element(polynomial*p,term x)int i=0;if(PloynStatus(p)=-1)return 0;while(ilast & p-termsi.expn!=x.expn)i+;if(ip-last)return 0;elsereturn 1;int Insert_ElementByOrder(polynomial*p,term x)int j;i

7、f(PloynStatus(p)=-1)return 0;if(p-last=MAXSIZE-1)coutThe polym is full!last;while(p-termsj.expn=0) p-termsj+1=p-termsj; j-; p-termsj+1=x;p-last+;return 1;int CreatePolyn(polynomial*P,int m)float coef;int expn;term x;if(PloynStatus(P)=-1)return 0;if(mMAXSIZE)printf(顺序表溢出n);return 0;elseprintf(请依次输入%d

8、对系数和指数.n,m);for(int i=0;iterm2.expn)return;else if(term1.expnterm2.expn)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(compare(p1-termsi,p2-termsj)case:p3-termsk+=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.expn=p1-termsi.expn;k+;p3-last+;i+;j+;while(ilast)p3-termsk+=p1-termsi+;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号