欢迎来到天天文库
浏览记录
ID:57411229
大小:26.00 KB
页数:4页
时间:2020-08-16
《从第s(sn)个人开始报数-数到m的人出圈;再由下一个人.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.约瑟夫问题:n个人围成一圈,从第s(s2、针,只要打印这条链就得到结果。源程序如下:#include#include#include//使用malloc()函数的库函数#includetypedefstructlinknode{intlvalue;structlinknode*next;}point;intmain(){intn,m,s,node,i;point*p,*q,*r;cout<<"Inputtotalnumber,initialnumberanddistance:";cin>>n>>s>>m;p=(point*)mal3、loc(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>1){if(m==1){r->next=p;node=1;}else{for(i=1;i<=m-2;i++)p=p->next;q->next=p->next;//将数到m4、的人出圈,链到出列人的链表中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<next->lvalue<lvalue<5、n个字符,试设计算法判断字符串是否中心对称。例如xyzzyx和xyzyx都是中心对称的字符串。分析:先将链表的前半部分倒置与后半部分比较,再倒置(设无头节点)。源程序如下:#include#include#include#includetypedefstructlinknode{chardata;structlinknode*next;}point;intmain(){inti,n;point*f,*p,*q,*h,*s;cout<<"Inputthenumberofcharacterst6、ring:";cin>>n;cout<>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++;}7、if(n%2==1)q=s->next;//跳过中间点elseq=s;h=p;while((p!=NULL)&&(q!=NULL)&&(p->data==q->data)){//逐个比较元素值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、针,只要打印这条链就得到结果。源程序如下:#include#include#include//使用malloc()函数的库函数#includetypedefstructlinknode{intlvalue;structlinknode*next;}point;intmain(){intn,m,s,node,i;point*p,*q,*r;cout<<"Inputtotalnumber,initialnumberanddistance:";cin>>n>>s>>m;p=(point*)mal
3、loc(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>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
4、的人出圈,链到出列人的链表中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<next->lvalue<lvalue<5、n个字符,试设计算法判断字符串是否中心对称。例如xyzzyx和xyzyx都是中心对称的字符串。分析:先将链表的前半部分倒置与后半部分比较,再倒置(设无头节点)。源程序如下:#include#include#include#includetypedefstructlinknode{chardata;structlinknode*next;}point;intmain(){inti,n;point*f,*p,*q,*h,*s;cout<<"Inputthenumberofcharacterst6、ring:";cin>>n;cout<>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++;}7、if(n%2==1)q=s->next;//跳过中间点elseq=s;h=p;while((p!=NULL)&&(q!=NULL)&&(p->data==q->data)){//逐个比较元素值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、n个字符,试设计算法判断字符串是否中心对称。例如xyzzyx和xyzyx都是中心对称的字符串。分析:先将链表的前半部分倒置与后半部分比较,再倒置(设无头节点)。源程序如下:#include#include#include#includetypedefstructlinknode{chardata;structlinknode*next;}point;intmain(){inti,n;point*f,*p,*q,*h,*s;cout<<"Inputthenumberofcharacterst
6、ring:";cin>>n;cout<>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++;}
7、if(n%2==1)q=s->next;//跳过中间点elseq=s;h=p;while((p!=NULL)&&(q!=NULL)&&(p->data==q->data)){//逐个比较元素值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.试设计一个民航公司的自动订票和退票系统的算法。设
此文档下载收益归作者所有