欢迎来到天天文库
浏览记录
ID:48623459
大小:298.00 KB
页数:96页
时间:2020-02-26
《北京理工大学数据结构编程练习答案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.一元多项式相加(10分)成绩:10/折扣:0.8题目说明:编写一元多项式加法运算程序。要求用线性链表存储一元多项式(参照课本)。该程序有以下几个功能:1.多项式求和输入:输入三个多项式,建立三个多项式链表Pa、Pb、Pc(提示:调用CreatePolyn(polynomial&P,intm)。输出:显示三个输入多项式Pa、Pb、Pc、和多项式Pa+Pb、多项式Pa+Pb+Pc(提示:调用AddPolyn(polynomial&Pa,polynomialPb),调用PrintPolyn(polynomialP))。0.退出输入:根据所选功能的不同,输入格式要求如下所示(第一个数据
2、是功能选择编号,参见测试用例):·1多项式A包含的项数,以指数递增的顺序输入多项式A各项的系数(整数)、指数(整数)多项式B包含的项数,以指数递增的顺序输入多项式B各项的系数(整数)、指数(整数)多项式C包含的项数,以指数递增的顺序输入多项式C各项的系数(整数)、指数(整数)·0---操作终止,退出。输出:对应一组输入,输出一次操作的结果(参见测试用例)。·1多项式输出格式:以指数递增的顺序输出:<系数,指数>,<系数,指数>,<系数,指数>,参见测试用例。零多项式的输出格式为<0,0>·0无输出1.精选范本,供参考!#include#include3、b.h>usingstd::cin;usingstd::cout;usingstd::endl;structdate{inta;intb;structdate*pnext;};typedefstructdateDATE;typedefstructdate*PDATE;voidoutput(PDATEp){intf=0;p=p->pnext;while(p!=NULL){if(p->a!=0){f=1;cout<<"<"<a<<","<b<<">";if(p->pnext==NULL)cout<pnext;}if(f4、==0)cout<<"<0,0>"<pnext;//skipheadif(p2!=NULL)p2=p2->pnext;while((p1!=NULL)&&(p2!=NULL)){if(p1->b>p2->b){p3->pnext=(PDATE)malloc(sizeof(DATE));p3=p3->pnext;p3->a=p2->a;p3->b=p2->b;p3->pnext=NULL;p2=p25、->pnext;}elseif(p1->bb){p3->pnext=(PDATE)malloc(sizeof(DATE));p3=p3->pnext;p3->a=p1->a;p3->b=p1->b;p3->pnext=NULL;p1=p1->pnext;}else{p3->pnext=(PDATE)malloc(sizeof(DATE));p3=p3->pnext;p3->a=p1->a+p2->a;p3->b=p1->b;p3->pnext=NULL;p1=p1->pnext;p2=p2->pnext;}}//endwhileif(p1==NULL)p3->pnext=6、p2;if(p2==NULL)p3->pnext=p1;}intmain(){intflag;intn;精选范本,供参考!PDATEP[6]={NULL};PDATEp=NULL;for(inti=0;i<6;i++){P[i]=(PDATE)malloc(sizeof(DATE));P[i]->a=0;P[i]->b=0;P[i]->pnext=NULL;}cin>>flag;if(flag==1){for(inti=1;i<4;i++){p=P[i];cin>>n;while(n--!=0){p->pnext=(PDATE)malloc(sizeof(DATE));p=p->p7、next;cin>>p->a>>p->b;p->pnext=NULL;}output(P[i]);}}add(P[1],P[2],P[4]);output(P[4]);add(P[4],P[3],P[5]);output(P[5]);}精选范本,供参考!0约瑟夫问题(10分)成绩:10/折扣:0.80约瑟夫问题 成绩10分 折扣0.8 (本题要求用循环链表实现) 0,1,2,3题,只能选做三题.约瑟夫问题是一个经典的问题。已
3、b.h>usingstd::cin;usingstd::cout;usingstd::endl;structdate{inta;intb;structdate*pnext;};typedefstructdateDATE;typedefstructdate*PDATE;voidoutput(PDATEp){intf=0;p=p->pnext;while(p!=NULL){if(p->a!=0){f=1;cout<<"<"<a<<","<b<<">";if(p->pnext==NULL)cout<pnext;}if(f
4、==0)cout<<"<0,0>"<pnext;//skipheadif(p2!=NULL)p2=p2->pnext;while((p1!=NULL)&&(p2!=NULL)){if(p1->b>p2->b){p3->pnext=(PDATE)malloc(sizeof(DATE));p3=p3->pnext;p3->a=p2->a;p3->b=p2->b;p3->pnext=NULL;p2=p2
5、->pnext;}elseif(p1->bb){p3->pnext=(PDATE)malloc(sizeof(DATE));p3=p3->pnext;p3->a=p1->a;p3->b=p1->b;p3->pnext=NULL;p1=p1->pnext;}else{p3->pnext=(PDATE)malloc(sizeof(DATE));p3=p3->pnext;p3->a=p1->a+p2->a;p3->b=p1->b;p3->pnext=NULL;p1=p1->pnext;p2=p2->pnext;}}//endwhileif(p1==NULL)p3->pnext=
6、p2;if(p2==NULL)p3->pnext=p1;}intmain(){intflag;intn;精选范本,供参考!PDATEP[6]={NULL};PDATEp=NULL;for(inti=0;i<6;i++){P[i]=(PDATE)malloc(sizeof(DATE));P[i]->a=0;P[i]->b=0;P[i]->pnext=NULL;}cin>>flag;if(flag==1){for(inti=1;i<4;i++){p=P[i];cin>>n;while(n--!=0){p->pnext=(PDATE)malloc(sizeof(DATE));p=p->p
7、next;cin>>p->a>>p->b;p->pnext=NULL;}output(P[i]);}}add(P[1],P[2],P[4]);output(P[4]);add(P[4],P[3],P[5]);output(P[5]);}精选范本,供参考!0约瑟夫问题(10分)成绩:10/折扣:0.80约瑟夫问题 成绩10分 折扣0.8 (本题要求用循环链表实现) 0,1,2,3题,只能选做三题.约瑟夫问题是一个经典的问题。已
此文档下载收益归作者所有