数据结构课程设计_两个一元稀疏多项式相加-课程设计

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

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

1、数据结构课程设计数据结构课程设计_ _两个一元稀疏多项式相加两个一元稀疏多项式相加- -课程设计课程设计1 课课程程设计设计的目的的目的本课程设计是为了配合数据结构课程的开设,通过数据结构的应用、算法的编写、类C语言的算法转换成C程序并用TC上机调试的基本方法,设计出一个对两个一元稀疏多项式进行相加,然后输入结果的程序。程序所能达到的功能:输入两个一元稀疏多项式,能够输出相加后的值。2 设计设计基本要求基本要求1.项数的输入形式和输入值的范围:int型, -3276832767 的整数.2.项的输入的格式和输入值的范围:输入格式为:coef,expn输入值范围:-3276832767 的整数.

2、3.输出的形式:n, c1, e1, c2, e2, cn , en, 其中,n是多项式项数,ci和ei分别是第 i 项的系数和指数,序列按指数降序排列.4. 输入两个一元稀疏多项式,能够输出相加后的值3概要概要设计设计3.1主程序的流程(1)输入第一个一元稀疏多项式.(2)输入第二个一元稀疏多项式.(3)对两个一元稀疏多项式进行相加.(4)输出两个一元稀疏多项式相加后的结果.3.2程序模块(1)项数的结构体Term(2)建立一元稀疏多项式函数 CreatPloy(void).(3)对两个一元稀疏多项式相加函数AddPolyn(输入第一项的系数和指数 coef expni=2 to i=n ;

3、i+ p1=(struct term*)malloc(LEN);scanf(“%d,%d“,p1-next=NULL;p2-next=p1;p2=p2-next;return head课程设计说明书 NO.3(3) PrintPloyn函数流程图int m=0;while(p!=NULL)m+;printf(“c%d=%d,e%d=%dn“,m,p-coef,m,p-expn);p=p-next;printf(“number=%dn“,m);(4) AddPolyn函数流程图int n=0;struct term *p3,*head;while(p1!=NULLn=1真假比较p1和p2所指结点

4、指数建立头结点 head比较p1和p2所指结点指数把指数大的结点连入head把p1或p2剩下的结点连入head中返回head4.2抽象数据类型定义ADT Polynomial数据对象:D=ai|aiTermSet,i=1,2,m,m0TermSet中的每个元素包含一个表示系数的实数和表示指数的整数数据关系:R1=|ai-1,aiD,且ai-1中的指数值ai中的指数值,i=2,nCreatPloy(void)107数据结构课程设计_两个一元稀疏多项式相加操作结果:输入M项的系数和指数,建立一元多项式P。PrintPloyn(P)初始条件:一元二项式P存在。操作结果:输出一元二项式P。AddPol

5、yn(/系数int expn;/指数Term;(2)输入M项的系数和指数,建立一元多项式Pstatus CreatPolyn(void)scanf(n);head=p1=p2=(elemtype*)malloc(LEN);scanf(p1-coef,p1-expn);for(i=2;icoef,p1-expn);p1-next=NULL;p2-next=p1;p2=p2-next;/forreturn(head);/CreatPolyn(3)完成多项式相加运算,即:Pa=Pa+Pbstatus AddPolyn(Term p1,Term p2)n=0;if(n=1)if(p1-expnp2-e

6、xpn)head=p3=p1;p1=p1-next;/*if*/else if(p1-expn=p2-expn)p1-coef=p1-coef+p2-coef;if(p1-coef=0)n=0;p1=p1-next;p2=p2-next;if(!p1)head=p2;if(!p2)head=p1;if(!p1head=NULL;/*if*/*if*/elsehead=p3=p1;p1=p1-next;p2=p2-next;/*else*/*else if*/elsehead=p3=p2;p2=p2-next;/*else*/*if*/elseif(p1-expnp2-expn)p3-next=

7、p1;p1=p1-next;p3=p3-next;/*if*/else if(p1-expn=p2-expn)p1-coef=p1-coef+p2-coef;if(p1-coef=0)p1=p1-next;p2=p2-next; /*if*/elsep3-next=p1;p1=p1-next;p2=p2-next;p3=p3-next;/*else*/*else if*/elsep3-next=p2;p2=p2-next;p3=p3-next;/*else*/ /*else*/*while*/while(p1!=NULL)需要完整内容的请联系 ,本文免费, return(head);/*daa

8、polyn*/(4)输出一元二项式Pstatus PrintPolyn(p)while(p)m+;printf(cm=p-coef,em=p-expn)/输出c1,e1,c2,e2cm,em,c为系数,e为指数/whileprint(m);/输出项数/PrintPolyn两个一元稀疏多项式相加_C语言 5 测试测试与分析与分析5.1 运行方法如下1.根据提示输入第一个一元稀疏多项式的项数和各项数的系数和指数。如图1图图1输输入入显显示示图图2.根据提示输入第二个一元稀疏多项式的项数和各项数的系数和指数。如图23.输出两个一元二项式的相加后的结构,如图35.2测试数据第一组:输入-7X2和7X2

9、 输出结果为。如图4第二组:输入-7X2和7X2+7 输出结果为。如图5第三组:输入5X17+9X8+3X1+7和-9X8+22X7+8X1输出结果为。如图6图图6输输出出结结果果图图通过上述3组实验证明该程序,在正确输入数据的前提条件下,能够按要求输出正确的结果,并按指定的输出格式输出。6心得体会心得体会一元稀疏多项式相加是我选择的课程设计题目,在这次设计中我学到了很多实际应用的知识。 当得到课程设计指导书时,我认真分析了这一题目及相关要求,然后根据数据结构课所学写出相映算法,再后运用C 语言的知识将算法写成程序,进行修改,最后在Turbo C环境下进行运用,修改。 这次设计让我真切地感受到

10、往往一个细节会决定整个程序的命运。所以在编程过程中理论与实践的结合是十分重要的,细节问题也是不容忽视的。7参考文献参考文献1.晋良颍.数据结构M.人民邮电出版社,2002.05 34-412.徐孝凯,魏荣.数据结构M.机械工业出版社,1996.07 56-623.徐孝凯.数据结构简明教程.M.清华大学出版社,1995.04 106-1134.陈文博,朱青.数据结构与算法M,机械工业出版社,1996.09 125-127两个一元稀疏多项式相加_C语言源程序清源程序清单单#include “stdio.h“#define LEN sizeof(struct term)#define NULL 0s

11、truct termint coef;/*系数*/struct term *creatpolyn(void)struct term *p1,*p2,*head;int n,i;scanf(“%d“,head=p1=p2=(struct term*)malloc(LEN);printf(“Decline the sequence importation according to the index numbern“);/*按指数降序列输入*/printf(“Input the format is coef,expn n“);/*输入格式是 系数,指数*/printf(“input 1 term:

12、 “);scanf(“%d,%d“,for(i=2;icoef,p1-next=NULL;p2-next=p1;p2=p2-next;/*for*/需要完整内容的请联系 ,本文免费, n=n+1;if(n=1)if(p1-expnp2-expn)head=p3=p1;p1=p1-next;/*if*/ else if(p1-expn=p2-expn)p1-coef=p1-coef+p2-coef;if(p1-coef=0)n=0;p1=p1-next;p2=p2-next;if(!p1)head=p2;if(!p2)head=p1;if(!p1head=NULL;/*if*/*if*/ els

13、ehead=p3=p1;p1=p1-next;p2=p2-next;/*else*/*else if*/ elsehead=p3=p2;p2=p2-next;/*else*/*if*/elseif(p1-expnp2-expn)p3-next=p1;p1=p1-next;p3=p3-next;/*if*/else if(p1-expn=p2-expn)p1-coef=p1-coef+p2-coef;if(p1-coef=0)p1=p1-next;p2=p2-next; /*if*/elsep3-next=p1;p1=p1-next;p2=p2-next;p3=p3-next;/*else*/*

14、else if*/elsep3-next=p2;p2=p2-next;p3=p3-next;/*else*/ /*else*/*while*/while(p1!=NULL)p3-next=p1;p1=p1-next;p3=p3-next;/*while*/while(p2!=NULL)p3-next=p2;p2=p2-next;p3=p3-next;/*while*/ p3-next=NULL;return(head);/*daapolyn*/struct term *printpolyn(struct term *p)int m=0; while(p!=NULL)m+; printf(“c%

15、d=%d,e%d=%dn“,m,p-coef,m,p-expn);p=p-next;/*while*/ printf(“number=%dn“,m);/*printpolyn*/main()struct term *p1,*p2,*head; printf(“Please input the first formula number: “);/*请输入第一个一元二项式项数*/p1=creatpolyn();printf(“Please input the second formula number: “);/*请输入第二个一元二项式项数*/p2=creatpolyn();head=addpolyn(p1,p2);printpolyn(head); /*main*/

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

当前位置:首页 > 建筑/环境 > 工程造价

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