数据结构课程设计,一元多项式.doc

数据结构课程设计,一元多项式.doc

ID:55162711

大小:316.50 KB

页数:19页

时间:2020-04-29

数据结构课程设计,一元多项式.doc_第1页
数据结构课程设计,一元多项式.doc_第2页
数据结构课程设计,一元多项式.doc_第3页
数据结构课程设计,一元多项式.doc_第4页
数据结构课程设计,一元多项式.doc_第5页
资源描述:

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

1、湖南工学院课程设计一元多项式计算班级:信息本1002学号:09姓名:班级:信息本1002学号:26姓名:班级:信息本1002学号:34姓名:班级:信息本1002学号:41姓名:17目录一、课题任务1二、概要设计1三、详细设计2四、调试分析6五、测试结果6六、课程设计总结9七、参考文献9八、附录1017一、课题任务功能:1).能够按照指数降序排列建立并输出多项式;  2).能够完成两个多项式的相加,并将结果输出;3).能根据输入的多项式及变量的值,能进行计算。并输出计算结果。4).能对多个输入的表达式按照指数大小排序输出。二、概要设计一元多项式计算系统降序排列建立并

2、输出多项式多项式的相加减并输出结果输入的多项式及变量的值计算多个表达式按照指数大小排序输出按指数排序建立多项式相减建立多项式相加计算多项式建立多个多项式输出多式项或计算值排序后输出多个多项式排序17三、详细设计一元多项式定义系数和指数结构如下:coefexpnnextcoef域--存放结点的系数值expn域--存放结点的指数值next域--存放结点的直接后继的地址(位置)的指针域(链域)一元多项式单链表存储结构:typedefstructterm{floatcoef;//系数intexpn;//指数structterm*next;}term;有了链表特定的数据类型

3、term,接下来就需要建立这个链表。这里我们自定义一个构造函数CreatePoly()来构造链表。首先定义一个term型的指针变量h=p作为头结点,存储多项式的信息(项数),为h分配存储空间建立一个头结点并为其数据域赋值,分配存储空间用malloc()函数来实现;这时输入多项式的项数m,先给p的coef赋值为0,此时利用一个for循环将p链表的coef与expn值从键盘输入,用m来控制循环的次数,若该从键盘输入的coef值不为0,则将该数值插入链表新建链表q,用malloc()分配给p空间,p=p->next继续从键盘输入coef与expn的值,直到满足p->ne

4、xt=null,输入完成,返回链表q即为多项式的系数与指数,创建多项式完成。在处理多项式相加的问题上,由于事先建立的多项式函数已经按指数大小排好序,那么多项式的相加就变得不那么复杂了,我们只要找出两个相加多项式指数相同的项进行合并,即将指数相同的项的系数相加,其它的保持不变存好即可。而查找指数相同的项,只要按链表从头到尾进行扫描,若发现相同,则两个同时往下移,否则只将其中指数较大的往下移。假若两个指数相同的项进行合并时,其系数相加值为0,则消除该项,继续下去。在处理输入的多项式及变量的值计算结果的问题时,定义一个C()函数实现,需要定义一个float变量sum来存

5、储和值,再引用一个pow()函数来计算多项式的和,利用一个for循环来一一计算x的q->expn次方后与q->coef相乘的值,并存储在sum中,q=q->next,直到q->next=unll,跳出for循环,返回sum的值就是多项式在用x赋值后的值。对多个输入的表达式按照指数从大到小排序输出:,利用一个for(包含两个函数CreatPolyn(M,n);selsort(M);)循环,用scanf()输入k来控制for的次数可控制输入的多项式个数,并一个trem型数组G[i]来保存每一个多项式,方便后来的按最高指数大小排序。排序的思想利用枚举排序法可将每个多项式

6、最高次expn按从大到小排列并保存在G[i]数组中,再次利用for将排序好的G[i]多项式按指数从大到小输出。17开始具体子功能流程图如下:输入变量x的值Nq不空Ysum+=q->coef*pow(x,q->expn)q=q->nextreturnsum;完成多项式计算输出多项式的计算开始从键盘输入项数mm<=0返回空定义存储多项式数据类型term动态分配空间完成建立多项式降次排序输出YN多项式的建立按指数排序将k个有序多项式用数组G[i]保存输入多项式个数k输出开始开始定义存储和链表h动态分配空间Pb=Pb->coef*(-1)两多项式相加输出Pb?Pb=pb-

7、>nextYN多个多项式排序多项式相减17定义存储和链表h动态分配空间Pa&&Pb?C=a->expn-b->expnh==UNLL返回系统C>=1C>=0h=PbPb=Pb->next;h=PaPa=Pa->next;sum=Pa->coef+Pb->coef;sum==0Pa->coef=sum;h=Pa;Pa=Pa->next;Pa=Pa->next;Pa==0Pb==0h->next=Pa;h->next=Pa;h=h->next;ReturnhNYNYNYNYYNYYNN输出开始完成多项式相加调用函数查找同类项同类项系数相加进行合并合并后检查ab扫描是否

8、完整17输

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

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

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