资源描述:
《数据结构课程设计_两个一元稀疏多项式相加-课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构课程设计_两个一元稀疏多项式相加-课程设计1.课程设计的目的本课程设计是为了配合《数据结构》课程的开设,通过数据结构的应用、算法的编写、类C语言的算法转换成C程序并用TC上机调试的基本方法,设计出一个对两个一元稀疏多项式进行相加,然后输入结果的程序。程序所能达到的功能:输入两个一元稀疏多项式,能够输出相加后的值。2.设计基本要求1.项数的输入形式和输入值的范围:int型,-32768~32767的整数.2.项的输入的格式和输入值的范围:输入格式为:coef,expn 输入值范围:-32768~3
2、2767的整数. 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(&Pa,&Pb).(4)输出相加后值的函
3、数PrintPloyn(P). 沈 阳 大 学课程设计说明书 NO.23.3各模块之间的调用关系(1)主函数调用Term结构体(2)调用两次GreatPloy函数建立一元稀疏多项式(2)调用AddPolyn函数,对两个多项式进行相加(3)调用PrintPloyn函数,输出结果4.详细设计4.1程序流程图(1)主函数流程图输入第一个一元稀疏多项式.CreatPloy(void)输入第二个一元稀疏多项式.CreatPloy(void)对两个一元稀疏多项式进行相加.AddPolyn(&Pa,&Pb)输出两个一元稀疏多项式相加后的结果.P
4、rintPloyn(P)(2)GreatPloy函数流程图 输入项数n head=p1=p2=(structterm*)malloc(LEN); 输入第一项的系数和指数coefexpni=2toi=n;i++p1=(structterm*)malloc(LEN); scanf("%d,%d",&p1->coef,&p1->expn);p1->next=NULL;p2->next=p1;p2=p2->next;returnhead 课程设计说明
5、书 NO.3(3)PrintPloyn函数流程图intm=0;while(p!=NULL) m++;printf("c%d=%d,e%d=%d",m,p->coef,m,p->expn);p=p->next;printf("number=%d",m); (4)AddPolyn函数流程图intn=0;structterm*p3,*head;while(p1!=NULL&&p2!=NULL)n=n+1; n==1真假比较p1和p2所指结点指数建立头结点head比较p1和p2所指结点指数把指数大的结点连入head把p1或p2
6、剩下的结点连入head中返回head4.2抽象数据类型定义ADTPolynomial{数据对象:D={ai
7、ai∈TermSet,i=1,2,…,m,m≥0TermSet中的每个元素包含一个表示系数的实数和表示指数的整数}数据关系:R1={
8、ai-1,ai∈D,且ai-1中的指数值>ai中的指数值,i=2,…,n}CreatPloy(void)107数据结构课程设计_两个一元稀疏多项式相加操作结果:输入M项的系数和指数,建立一元多项式P。PrintPloyn(P)初始条件:一元二项式P存在。操作结果:输出一元二项式P。AddPolyn(&Pa
9、,&Pb)初始条件:一元二项式Pa和Pb已存在。操作结果:完成多项式相加运算,即:Pa=Pa+Pb。}ADTPolynomial4.3基本操作的算法描述(1)项数的结构体typedefstruct{//项的表示,多项式作为LinkList的数据元素 intcoef;//系数 intexpn;//指数}Term;(2)输入M项的系数和指数,建立一元多项式PstatusCreatPolyn(void){ scanf(n); head=p1=p2=(elemtype*)malloc(LEN); scanf(p1->coef,p1->expn);
10、for(i=2;i<=n;i++){