欢迎来到天天文库
浏览记录
ID:12313769
大小:313.00 KB
页数:17页
时间:2018-07-16
《数据结构课程设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、课程设计论文一、一元多项式的计算1、需求分析:1)、能够按照指数降序排列建立并输出多项式;2)、能够完成两个多项式的相加、相减,并将结果输入。2、数据存储结构:单链表3、程序流程说明:定义数据类型→定义按照指数的大小排序→创建并初始化多项式链表→进行多项式的相加相减运算→销毁多项式→退出程序。4、源程序:#include#includetypedefstruct{floatcoef;//系数intexpn;//指数}term;typedefstructLNode{termdata;//term多
2、项式值structLNode*next;}LNode,*LinkList;typedefLinkListpolynomail;/*比较指数*/intcmp(terma,termb){if(a.expn>b.expn)return1;if(a.expn==b.expn)return0;if(a.expn3、;p->next!=NULL;p=p->next);r=p;for(h=pa;h->next!=r;)//大的沉底{for(p=h;p->next!=r&&p!=r;p=p->next)if(cmp(p->next->data,p->next->next->data)==1){q=p->next->next;p->next->next=q->next;q->next=p->next;p->next=q;}r=p;//r指向参与比较的最后一个,不断向前移动}}/*由大到小排序*/voidarrange2(polynomailpa){p4、olynomailh=pa,p,q,r;if(pa==NULL)exit(-2);for(p=pa;p->next!=NULL;p=p->next);r=p;for(h=pa;h->next!=r;)//小的沉底{for(p=h;p->next!=r&&p!=r;p=p->next)if(cmp(p->next->next->data,p->next->data)==1){q=p->next->next;p->next->next=q->next;q->next=p->next;p->next=q;}r=p;//r指向参与比较的最后5、一个,不断向前移动}}/*打印多项式,求项数*/intprintpolyn(polynomailP){inti;polynomailq;if(P==NULL)printf("无项!");elseif(P->next==NULL)printf("Y=0");else{printf("该多项式为Y=");q=P->next;i=1;if(q->data.coef!=0&&q->data.expn!=0){printf("%.2fX^%d",q->data.coef,q->data.expn);i++;}if(q->data.ex6、pn==0&&q->data.coef!=0)printf("%.2f",q->data.coef);//打印第一项q=q->next;if(q==NULL){printf("");return1;}while(1)//while中,打印剩下项中系数非零的项,{if(q->data.coef!=0&&q->data.expn!=0){if(q->data.coef>0)printf("+");printf("%.2fX^%d",q->data.coef,q->data.expn);i++;}if(q->data.expn==0&7、&q->data.coef!=0){if(q->data.coef>0)printf("+");printf("%f",q->data.coef);}q=q->next;if(q==NULL){printf("");break;}}}return1;}/*1、创建并初始化多项式链表*/polynomailcreatpolyn(polynomailP,intm){polynomailr,q,p,s,Q;inti;P=(LNode*)malloc(sizeof(LNode));r=P;for(i=0;i8、e*)malloc(sizeof(LNode));printf("请输入第%d项的系数和指数:",i+1);scanf("%f%d",&s->data.coef,&s->data.expn);r->next=s;r=s;}r->nex
3、;p->next!=NULL;p=p->next);r=p;for(h=pa;h->next!=r;)//大的沉底{for(p=h;p->next!=r&&p!=r;p=p->next)if(cmp(p->next->data,p->next->next->data)==1){q=p->next->next;p->next->next=q->next;q->next=p->next;p->next=q;}r=p;//r指向参与比较的最后一个,不断向前移动}}/*由大到小排序*/voidarrange2(polynomailpa){p
4、olynomailh=pa,p,q,r;if(pa==NULL)exit(-2);for(p=pa;p->next!=NULL;p=p->next);r=p;for(h=pa;h->next!=r;)//小的沉底{for(p=h;p->next!=r&&p!=r;p=p->next)if(cmp(p->next->next->data,p->next->data)==1){q=p->next->next;p->next->next=q->next;q->next=p->next;p->next=q;}r=p;//r指向参与比较的最后
5、一个,不断向前移动}}/*打印多项式,求项数*/intprintpolyn(polynomailP){inti;polynomailq;if(P==NULL)printf("无项!");elseif(P->next==NULL)printf("Y=0");else{printf("该多项式为Y=");q=P->next;i=1;if(q->data.coef!=0&&q->data.expn!=0){printf("%.2fX^%d",q->data.coef,q->data.expn);i++;}if(q->data.ex
6、pn==0&&q->data.coef!=0)printf("%.2f",q->data.coef);//打印第一项q=q->next;if(q==NULL){printf("");return1;}while(1)//while中,打印剩下项中系数非零的项,{if(q->data.coef!=0&&q->data.expn!=0){if(q->data.coef>0)printf("+");printf("%.2fX^%d",q->data.coef,q->data.expn);i++;}if(q->data.expn==0&
7、&q->data.coef!=0){if(q->data.coef>0)printf("+");printf("%f",q->data.coef);}q=q->next;if(q==NULL){printf("");break;}}}return1;}/*1、创建并初始化多项式链表*/polynomailcreatpolyn(polynomailP,intm){polynomailr,q,p,s,Q;inti;P=(LNode*)malloc(sizeof(LNode));r=P;for(i=0;i8、e*)malloc(sizeof(LNode));printf("请输入第%d项的系数和指数:",i+1);scanf("%f%d",&s->data.coef,&s->data.expn);r->next=s;r=s;}r->nex
8、e*)malloc(sizeof(LNode));printf("请输入第%d项的系数和指数:",i+1);scanf("%f%d",&s->data.coef,&s->data.expn);r->next=s;r=s;}r->nex
此文档下载收益归作者所有