数据结构课程设计报告一元稀疏多项式计算器样本.docx

数据结构课程设计报告一元稀疏多项式计算器样本.docx

ID:61858176

大小:24.39 KB

页数:7页

时间:2021-03-25

数据结构课程设计报告一元稀疏多项式计算器样本.docx_第1页
数据结构课程设计报告一元稀疏多项式计算器样本.docx_第2页
数据结构课程设计报告一元稀疏多项式计算器样本.docx_第3页
数据结构课程设计报告一元稀疏多项式计算器样本.docx_第4页
数据结构课程设计报告一元稀疏多项式计算器样本.docx_第5页
资源描述:

《数据结构课程设计报告一元稀疏多项式计算器样本.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。程告1.需求分析【描述】一个一元稀疏多式算器.【基本要求】一元稀疏多式基本功能包括:1)入并建立多式;2)出多式,出形式整数序列:n,c1,e1,c2,e2,⋯,cn,en,其中n是多式的数,ci和ei分是第i的系数和指数,序列按指数降序排列;3)多式a和b相加,建立多式a+b;4)多式a和b相减,建立多式a-b;【数据】1)(2x+5x8-3.1x11)+(11x9-5x8+7)=(-3.1x11+11x8+2x+7)2)(-1.2x9+6x-3+4.4x2-x)-(7.8x15+4.4

2、x2-6x-3)=(-7.8x15-1.2x9+12x-3-x)3)(x5+x4+x3+x2+x+1)-(-x4-x3)=(x5+x2+x+1)4)(x3+x)-(-x3-x)=05)(x100+x)+(x200+x100)=(x200+2x100+x)6)(x3+x2+x)+0=x3+x2+x7)互上述数据中的前后两个多式.资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。2.概要ADTPolynomial{数据象:D={ai

3、aiTermSet,i=1,2,⋯,m,m≥0,TermSet中的每个元素包含一个表示系数的数和表示指数的整数

4、}数据象:R1={

5、ai,ai-1D,且ai-1中的指数小于ai中的指数,i=2,⋯,m}基本操作:CreatePolyn(void)Result:指数由大到小入m的系数和指数,建立一元多式pPrintPoly(LNodeHead)Result:出一元多式AddPoly(LNodeH1,LNodeH2)Condition:一元多式pa,pb已存在Result:完成多式相加运算,即pa=pa+pb,并一元多式pb.SubtractPoly(LNodeH1,LNodeH2)Condition:一元多式pa,pb

6、已存在Result:完成多式相减运算,即pa=pa-pb,并一元多式pb.}ADTPolynomial资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。3.详细设计【数据类型定义】typedefstructnode{intexpn,coef;structnode*next;}Nodetype,*LNode;//定义结点类型【函数原型定义】LNodeCreatePolyn(void);VoidPrintPoly(LNodeHead);LNodeAddPolyn(LNodeH1,LNodeH2);LNodeSubPolyn(LNodeH1,L

7、NodeH2);【核心算法描述】CreatePolyn()LNodeCreatePolyn(void){//创立表示式LNodeHead,p,pre,pree;intx,z;Head=(LNode)malloc(sizeof(Nodetype));Head->next=NULL;printf("当你输入的系数为0时,输入将结束!");printf("请输入第一项系数:");scanf("%d",&x);if(x==0){p=(LNode)malloc(sizeof(LNode));p->coef=0;p->expn=0;Head->next=p

8、;p->next=NULL;}资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。while(x!=0){printf("请输入指数:");scanf("%d",&z);p=(LNode)malloc(sizeof(Nodetype));p->coef=x;p->expn=z;pre=Head;while(pre->next&&pre->next->expn>=z)//原有项指数大于插入项{pree=pre;pre=pre->next;}p->next=pre->next;//插入项pre->next=p;if(pre->expn==p->

9、expn)//原有项指数等于插入项{pre->coef+=p->coef;pre->next=p->next;free(p);}if(pre->coef==0)//系数为0{pree->next=pre->next;free(pre);}printf("请输入系数:");scanf("%d",&x);}if(Head->next==NULL)//多项式空{pre=(LNode)malloc(sizeof(LNode));pre->coef=0;pre->expn=0;pre->next=Head->next;Head->next=pre;}retur

10、nHead;}PrintPolyn()voidPrintPolyn(LNodeHead)//输出表示式{资料

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

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

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