北京理工大学数据结构编程练习答案

ID:22160137

大小:135.47 KB

页数:96页

时间:2018-10-27

北京理工大学数据结构编程练习答案_第1页
北京理工大学数据结构编程练习答案_第2页
北京理工大学数据结构编程练习答案_第3页
北京理工大学数据结构编程练习答案_第4页
北京理工大学数据结构编程练习答案_第5页
资源描述:

《北京理工大学数据结构编程练习答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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#include

3、dlib.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<pn

4、ext;}if(f==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

5、;p2=p2->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==NUL

6、L)p3->pnext=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

7、));p=p->pnext;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题,只能选做三题.约瑟夫问题是一个经典的问题。已知n个人(不妨分别以编号1,2,3,…,n代表)围坐在一张圆桌周围,从编

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
正文描述:

《北京理工大学数据结构编程练习答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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#include

3、dlib.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<pn

4、ext;}if(f==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

5、;p2=p2->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==NUL

6、L)p3->pnext=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

7、));p=p->pnext;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题,只能选做三题.约瑟夫问题是一个经典的问题。已知n个人(不妨分别以编号1,2,3,…,n代表)围坐在一张圆桌周围,从编

显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭