欢迎来到天天文库
浏览记录
ID:56913944
大小:26.00 KB
页数:4页
时间:2020-07-23
《从第s(n)个人开始报数,数到m的人出圈;再由下一个人.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.约瑟夫问题:n个人围成一圈,从第s(s2、行下去,直到剩下一个记录。出列的人也组成一条链,r是其首指针,只要打印这条链就得到结果。源程序如下:#include#include#include//使用malloc()函数的库函数#includetypedefstructlinknode{intlvalue;structlinknode*next;}point;intmain(){intn,m,s,node,i;point*p,*q,*r;cout<<"Inputtotalnu3、mber,initialnumberanddistance:";cin>>n>>s>>m;p=(point*)malloc(sizeof(point));q=p;for(i=1;i<=n-1;i++){//生成链表q->lvalue=s;s=s%n+1;q->next=(point*)malloc(sizeof(point));q=q->next;}q->lvalue=s;q->next=p;//生成循环链表node=n;r=(point*)malloc(sizeof(point));q=r;while(node4、>1){if(m==1){r->next=p;node=1;}else{for(i=1;i<=m-2;i++)p=p->next;q->next=p->next;//将数到m的人出圈,链到出列人的链表中q=q->next;p->next=p->next->next;p=p->next;node--;}}for(i=1;i<=n-1;i++){//依次打印出列人的序号r=r->next;cout<<"The"<lvalue<5、t<<"Thelastoneisnumber:"<next->lvalue<lvalue<#include#include#i6、ncludetypedefstructlinknode{chardata;structlinknode*next;}point;intmain(){inti,n;point*f,*p,*q,*h,*s;cout<<"Inputthenumberofcharacterstring:";cin>>n;cout<>7、q->data;q->next=(point*)malloc(sizeof(point));q=q->next;}cin>>q->data;q->next=NULL;f=p;//f为指向字符串单链表的头指针p=NULL;i=0;s=f;while(i<(n/2)){//前半部分倒置q=s;s=s->next;q->next=p;p=q;i++;}if(n%2==1)q=s->next;//跳过中间点elseq=s;h=p;while((p!=NULL)&&(q!=NULL)&&(p->data==q->data)8、){//逐个比较元素值p=p->next;q=q->next;}if((p==NULL)&&(q==NULL))//得到判断结果cout<<"Yes!";elsecout<<"No!";while(h!=NULL){//倒置回来,恢复原来的单链表q=h;h=h->next;q->next=s;s=q;}return1;}3.试设计一个民航公司的自动订票和退票系统的算法。设
2、行下去,直到剩下一个记录。出列的人也组成一条链,r是其首指针,只要打印这条链就得到结果。源程序如下:#include#include#include//使用malloc()函数的库函数#includetypedefstructlinknode{intlvalue;structlinknode*next;}point;intmain(){intn,m,s,node,i;point*p,*q,*r;cout<<"Inputtotalnu
3、mber,initialnumberanddistance:";cin>>n>>s>>m;p=(point*)malloc(sizeof(point));q=p;for(i=1;i<=n-1;i++){//生成链表q->lvalue=s;s=s%n+1;q->next=(point*)malloc(sizeof(point));q=q->next;}q->lvalue=s;q->next=p;//生成循环链表node=n;r=(point*)malloc(sizeof(point));q=r;while(node
4、>1){if(m==1){r->next=p;node=1;}else{for(i=1;i<=m-2;i++)p=p->next;q->next=p->next;//将数到m的人出圈,链到出列人的链表中q=q->next;p->next=p->next->next;p=p->next;node--;}}for(i=1;i<=n-1;i++){//依次打印出列人的序号r=r->next;cout<<"The"<lvalue<5、t<<"Thelastoneisnumber:"<next->lvalue<lvalue<#include#include#i6、ncludetypedefstructlinknode{chardata;structlinknode*next;}point;intmain(){inti,n;point*f,*p,*q,*h,*s;cout<<"Inputthenumberofcharacterstring:";cin>>n;cout<>7、q->data;q->next=(point*)malloc(sizeof(point));q=q->next;}cin>>q->data;q->next=NULL;f=p;//f为指向字符串单链表的头指针p=NULL;i=0;s=f;while(i<(n/2)){//前半部分倒置q=s;s=s->next;q->next=p;p=q;i++;}if(n%2==1)q=s->next;//跳过中间点elseq=s;h=p;while((p!=NULL)&&(q!=NULL)&&(p->data==q->data)8、){//逐个比较元素值p=p->next;q=q->next;}if((p==NULL)&&(q==NULL))//得到判断结果cout<<"Yes!";elsecout<<"No!";while(h!=NULL){//倒置回来,恢复原来的单链表q=h;h=h->next;q->next=s;s=q;}return1;}3.试设计一个民航公司的自动订票和退票系统的算法。设
5、t<<"Thelastoneisnumber:"<next->lvalue<lvalue<#include#include#i
6、ncludetypedefstructlinknode{chardata;structlinknode*next;}point;intmain(){inti,n;point*f,*p,*q,*h,*s;cout<<"Inputthenumberofcharacterstring:";cin>>n;cout<>
7、q->data;q->next=(point*)malloc(sizeof(point));q=q->next;}cin>>q->data;q->next=NULL;f=p;//f为指向字符串单链表的头指针p=NULL;i=0;s=f;while(i<(n/2)){//前半部分倒置q=s;s=s->next;q->next=p;p=q;i++;}if(n%2==1)q=s->next;//跳过中间点elseq=s;h=p;while((p!=NULL)&&(q!=NULL)&&(p->data==q->data)
8、){//逐个比较元素值p=p->next;q=q->next;}if((p==NULL)&&(q==NULL))//得到判断结果cout<<"Yes!";elsecout<<"No!";while(h!=NULL){//倒置回来,恢复原来的单链表q=h;h=h->next;q->next=s;s=q;}return1;}3.试设计一个民航公司的自动订票和退票系统的算法。设
此文档下载收益归作者所有