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

上传人:rrsccc 文档编号:10035186 上传时间:2021-04-12 格式:DOCX 页数:8 大小:24.39KB
返回 下载 相关 举报
数据结构课程设计报告一元稀疏多项式计算器样本.docx_第1页
第1页 / 共8页
数据结构课程设计报告一元稀疏多项式计算器样本.docx_第2页
第2页 / 共8页
数据结构课程设计报告一元稀疏多项式计算器样本.docx_第3页
第3页 / 共8页
数据结构课程设计报告一元稀疏多项式计算器样本.docx_第4页
第4页 / 共8页
数据结构课程设计报告一元稀疏多项式计算器样本.docx_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《数据结构课程设计报告一元稀疏多项式计算器样本.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告一元稀疏多项式计算器样本.docx(8页珍藏版)》请在三一文库上搜索。

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.1x 11)+(11x 9-5x 8+7)=(-3.1x 11+11x8+2

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

3、et, i=1,2,m,m0,TermSet中的每个元素包含一个表示系数的 数和表示指数的整数数据 象: R1=|ai ,ai-1D, 且ai-1中的指数 小于ai中的指数,i=2,m 基本操作:CreatePolyn(void)Result:指数由大到小 入m 的系数和指数, 建立一元多 式 pPrintPoly(LNode Head)Result: 出一元多 式AddPoly(LNode H1,LNode H2)Condition:一元多 式pa,pb 已存在Result:完成多 式相加运算, 即 pa=pa+pb, 并 一元多 式 pb.SubtractPoly(LNode H1,LNo

4、de H2)Condition:一元多 式pa,pb 已存在Result:完成多 式相减运算, 即 pa=pa-pb, 并 一元多 式 pb.ADT Polynomial资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。3. 详细设计【数据类型定义】 typedef struct nodeint expn,coef;struct node *next;Nodetype,*LNode;/定义结点类型【函数原型定义】LNode CreatePolyn(void);Void PrintPoly(LNode Head);LNode AddPolyn(LNode H1,LNode H2);L

5、Node SubPolyn(LNode H1,LNode H2);【核心算法描述】CreatePolyn()LNode CreatePolyn(void)/ 创立表示式LNode Head,p,pre,pree;int x,z;Head=(LNode)malloc(sizeof(Nodetype);Head-next=NULL;printf( 当你输入的系数为0 时, 输入将结束 ! n);printf( 请输入第一项系数:);scanf(%d,&x);if(x=0)p=(LNode)malloc(sizeof(LNode);p-coef=0;p-expn=0;Head-next=p;p-ne

6、xt=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-expn)/ 原有项指数等于插入项pre-coef+=p-coef;pre-next=p-next;

7、free(p);if(pre-coef=0)/ 系数为 0pree-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;return Head;PrintPolyn()void PrintPolyn(LNode Head)/ 输出表示式资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。LNode pre;pre

8、=Head-next;if(pre-expn=0)/ 指数为 0printf(%d,pre-coef);elseprintf(%d*X(%d),pre-coef,pre-expn);pre=pre-next;while(pre)/ 系数不为0if(pre-expn=0)/ 指数为 0if(pre-coef0)printf(+%d,pre-coef);else if(pre-coefcoef);else/指数不为0if(pre-coef0)printf(+%d*X(%d),pre-coef,pre-expn);else if(pre-coefcoef,pre-expn);pre=pre-next

9、;/ 遍历每一项printf(n);AddPolyn()LNode AddPolyn(LNode H1,LNode H2)/ 表示式相加LNode H3,p1,p2,p3,pre;/p1第一个多项式的项, prep 的前一项H3=(LNode)malloc(sizeof(LNode);H3-next=NULL;/ 建立一个空的多项式p1=H1-next;/第一个多项式的第一项p2=H2-next;pre=H3;/while(p1&p2)if(p1-expnp2-expn)/ 第一个多项式的项的指数大于第二个的p3=(LNode)malloc(sizeof(LNode);p3-expn=p1-e

10、xpn;p3-coef=p1-coef;资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。p3-next=pre-next;pre-next=p3;pre=p3;p1=p1-next;else if(p1-expnexpn)/ 第一个多项式的项的指数小于第二个的p3=(LNode)malloc(sizeof(LNode);p3-expn=p2-expn;p3-coef=p2-coef;p3-next=pre-next;pre-next=p3;pre=p3;p2=p2-next;else if(p1-coef+p2-coef!=0)/相加为不 0, 指数相同系数相加p3=(LNode

11、)malloc(sizeof(LNode);p3-expn=p1-expn;p3-coef=p1-coef+p2-coef;p3-next=pre-next;pre-next=p3;pre=p3;p1=p1-next;p2=p2-next;else/相加为 0p1=p1-next;p2=p2-next;while(p2)p3=(LNode)malloc(sizeof(LNode);p3-expn=p2-expn;p3-coef=p2-coef;p3-next=pre-next;pre-next=p3;pre=p3;p2=p2-next;资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删

12、除。while(p1)p3=(LNode)malloc(sizeof(LNode);p3-expn=p1-expn;p3-coef=p1-coef;p3-next=pre-next;pre-next=p3;pre=p3;p1=p1-next;return H3;Substract()LNode SubstractPolyn(LNode H1,LNode H2)/ 表示式相减/ 让系数变负 , 代入加法LNode H3,pre;pre=H2-next;while(pre)pre-coef=-pre-coef;pre=pre-next;H3=AddPolyn(H1,H2);pre=H2-next;while(pre)pre-coef=-pre-coef;pre=pre-next;return H3;【函数调用关系】main() 调用 CreatePoly(), PrintPoly(), AddPoly(), scanf()函数输入 , printf()函数输出。4. 运行记录

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1