数据结构课程设计-一元多项式计算器

数据结构课程设计-一元多项式计算器

ID:31768795

大小:213.88 KB

页数:11页

时间:2019-01-18

数据结构课程设计-一元多项式计算器_第1页
数据结构课程设计-一元多项式计算器_第2页
数据结构课程设计-一元多项式计算器_第3页
数据结构课程设计-一元多项式计算器_第4页
数据结构课程设计-一元多项式计算器_第5页
资源描述:

《数据结构课程设计-一元多项式计算器》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实习1、一元稀疏多项式计算器1.需求分析1•问题描述设计一个一元稀疏多项式简单计算器。2.基本要求一元稀疏多项式简单计算器的基本功能是:(1)输入并建立多项式。(2)输出多项式,输出形式为整数序列:n,cX/eizc2te2/,cn,en,其中n是多项式的项数,ce分别是第i项的系数和指数,序列按指数降序排列。⑶多项式a和b想加,建立多项式a+b。(4)多项式a和b想减,建立多项式a-b03•测试数据(1)(2x+5x8-3.1xn)+(7-5x8+11x9)=(-3.1x11+11x9+2x+7)(2)(6x'3-x+4.4x2-1.2x9)-

2、(-6x'3+5.4x2-x2+7.8x15)=(-7.8x15-1.2x9+12x'3-x)⑶(1+x+x2+x3+x4+x5)+(-x3-x4)=(l+x+x2+x5)(4)(x+x3)+(-x-x3)=O(5)(x+x100)+(x100+x200)=(x+2x叫x2°°)(6)(x+x2+x3)+O=(x+x2+x3)(7)互换测试数据的前后两个多项式。4•实现提示用带表头结点的单链表存储多项式。二、概要设计为实现上述程序功能,应用带头结点的单链表存储多项式。为此需要一个抽象数据类型:一元多项式。2.抽象数据类型一元多项式定义为:ATDP

3、loynomial{数据对象:D={ai

4、aTermset,i=l,2,3•••,m,mMOTermset中的每个元素包含一个表示系数的实数和表示指数的整数}数据关系:Rl={i-l,aieD,且ai・l中的指数i中的指数的值,曰23・・•n}基本操作:lnsert(p,h)初始条件:h已存在。操作结果:插入p项。Creatednklist(head,m)操作结果:建立一个头指针为head、项数为m的一元多项式。DestroyLinklist(p)初始条件:一元多项式p已存在。操作结果:销毁一元多项式p。PrintLinklist(P)初始条件:

5、一元多项式P已存在。操作结果:输出一元多项式P。Compare(a,b)初始条件:项a,b己存在。操作结果:比较a,b中x的指数的大小。AddLinklist(pa,pb)初始条件:一元多项式pa7pb已存在。操作结果:完成一元多项式pa,pb的相加运算。SubtractionLinklist(Sa,Sb)初始条件:一元多项式Sa,SbB存在。操作结果:完成一元多项式Sa,Sb的相减运算。}ATDPloynomial三、详细设计(源代码)(使用C语言)#include#include#definemaxlen

6、10#definelarge999typedefstructLinklistomial{floatcoef;intexpn;structLinklistomialext;}Linklistomial/Linklist;//结点类型,指针类型voidlnsert(Linklistp,Linklisth){//h已存在插入p项if(p->coef==0)free(p);//系数为0的话释放结点else{Linklistql,q2;ql=h;q2=h->next;while(q2&&p->expnvq2・>expn){〃查找插入位置ql=q2;q2=q

7、2・>next;}if(q2&&p->expn==q2->expn){〃将指数相同相合并q2->coef+=p->coef;free(p);if(!q2->coef){//系数为0的话释放结点ql->next=q2->next;free(q2);}}else{//指数为新吋将结点插入p->next=q2;ql->next=p;}}}LinklistCreateLinklist(Linklisthead,intm){//建立一个头指针为head、项数为m的一元多项式inti;Linklistp;p=head=(Linklist)malloc(siz

8、eof(structLinklistomial));head->next=NULL;for(i=0;icoef,&p->expn);Insert(p,head);〃调用InsertXl数插入结点}returnhead;}voidDestroyLinklist(Linklistp){//销毁多项式PLinklistD1,D2;

9、Dl=p;while(Dl){D2=Dl->next;free(Dl);D1=D2;}}voidPrintLinklist(Linkli

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

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

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