数据结构课程设计-一元稀疏多项式

上传人:re****.1 文档编号:507657185 上传时间:2023-10-21 格式:DOC 页数:17 大小:123.01KB
返回 下载 相关 举报
数据结构课程设计-一元稀疏多项式_第1页
第1页 / 共17页
数据结构课程设计-一元稀疏多项式_第2页
第2页 / 共17页
数据结构课程设计-一元稀疏多项式_第3页
第3页 / 共17页
数据结构课程设计-一元稀疏多项式_第4页
第4页 / 共17页
数据结构课程设计-一元稀疏多项式_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数据结构课程设计-一元稀疏多项式》由会员分享,可在线阅读,更多相关《数据结构课程设计-一元稀疏多项式(17页珍藏版)》请在金锄头文库上搜索。

1、课程设计说明书设计题目: 数据结构课程设计 专 业: 班级: 设 计 人: 课 程 设 计 任 务 书一、 课程设计题目:设计一个一元稀疏多项式计算器 二、 设计原始资料:数据结构C语言版教材及习题集 三、 设计应解决下列各主要问题:1、输入并建立一元稀疏多项式 2、输出多项式,输出形式为整数序列n,c1,e1,c2,e2,cn,en,其中n是多项式的项数,ci和ei分别是第I项的系数和指数,序列指指数降序排列;3、多项式a和b相加,建立多项式a+b;4、多项式a和b相减,建立多项式a-b。四、 设计说明书应附有下列图纸: 五、命题发出日期: 设计应完成日期: 设计指导教师(签章):系主任(签

2、章):指导教师对课程的评语指导教师(签章):年月日一、 需求分析1. 演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据和运算结果显示在其后。2. 程序执行的命令包括:1) 创建一元多项式1;2) 创建一元多项式2;3) 输出一元多项式4) 计算多项式1和多项式2的和;5) 计算多项式1和多项式2的差注意:输出形式为整数序列n,c1,e1,c2,e2,cn,en,其中n是多项式的项数,ci和ei分别是第I项的系数和指数,序列指指数降序排列 3.测试数据1) ;2) ;3)4)二、 概要设计为实现上述程序功能,应

3、以带头结点的单链表存储多项式1. 多项式的抽象数据类型为:ADT Polynmial 数据对象:D=ai|aiTermSet,i=1,2,3,m,TermSet中的每一个元素包含一个表示系数的实数和表示指数的整数数据关系:R1=ai-1,aiD,且ai-1中的指数next=NULL; for(i=0; icoef,&p-expn); Insert(p,head); /调用Insert函数插入结点 return head;void DestroyPolyn(Polyn p)/销毁多项式p q1=p-next; q2=q1-next; while(q1-next) free(q1); q1=q2;

4、 q2=q2-next; void Insert(Polyn p,Polyn h) if(p-coef=0) free(p);/系数为0的话释放结点 else q1=h; q2=h-next; while(q2&p-expnexpn) /查找插入位置 q1=q2; q2=q2-next; if(q2&p-expn=q2-expn) /将指数相同相合并 q2-coef+=p-coef; free(p); if(!q2-coef) /系数为0的话释放结点 q1-next=q2-next; free(q2); else /指数为新时将结点插入 p-next=q2; q1-next=p; void P

5、rintPolyn(Polyn P) Polyn q=P-next; int flag=0;/项数计数器 while(q) flag+; q=q-next; q=P-next; if(!q) /若多项式为空,输出0 putchar(0); printf(n); return; printf(%d ,flag); while(q) if(q-coef!=1&q-coef!=-1) printf(%g %d ,q-coef,q-expn); else if(q-coef=1) printf(%g %d ,q-coef,q-expn); if(q-coef=-1) printf(%g %d ,q-c

6、oef,q-expn); q=q-next; printf(n);int compare(Polyn a,Polyn b) if(a&b) if(!b|a-expnb-expn) return 1; else if(!a|a-expnexpn) return -1; else return 0; else if(!a&b) return -1;/a多项式已空,但b多项式非空 else return 1;/b多项式已空,但a多项式非空Polyn AddPolyn(Polyn pa,Polyn pb) /求解并建立多项式a+b,返回其头指针 Polyn qa=pa-next; Polyn qb=pb-next; Polyn headc,hc,qc; hc=(Polyn)malloc(sizeof(struct Polynomial);/建立头结点 hc-next=NULL; headc=hc; while(qa|qb) qc=(Polyn)malloc(sizeof(struct Polynomial); switch(compare(qa,qb) case 1:

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

当前位置:首页 > 建筑/环境 > 综合/其它

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