今天小编mail为大家分享的生活小常识,希望能够帮助到大家!
约瑟夫问题分析,约瑟夫问题这个很多人还不知道,现在让我们一起来看看吧!
1、//约瑟夫环://这个程序有点小问题,你自己看看吧,现在没时间改了。
2、起始位置有点问题#include#include int flag;typedef struct node{int data; struct node *next;}LNode,* Linklist;Linklist CreatFromHead() //链表的初始化{ Linklist L=NULL,s; LNode *r=NULL; int x=1;s=(Linklist)malloc(sizeof(LNode));L = s;r= L; printf("请输入请输入报数的人数"); scanf_s("%d",&flag); while(x!=flag+1) {s=(Linklist)malloc(sizeof(LNode)); s->data=x; r->next=s; r=s; x++; } s->next=L; if(r!=NULL) r->next=NULL; return L;}Linklist Getlist(Linklist L,int i) //链表的查找函数 {Linklist p;int j; p=L;j=0; while(p->next!=NULL&&jnext; j++; } if(i==j)return p; else return NULL; }Linklist treat(Linklist L,Linklist s,int k,int i) //约瑟夫环算法 { int j=0; if(s==NULL){ s=L->next;} while(jnext; j++; if(s==NULL){ s=L->next;} } return s; }int Del_Linklist(Linklist L,Linklist p) //链表结点删除函数{Linklist s;s=L;while((s->next->data != p->data)) { s=s->next; } s->next=s->next->next; free(p);return 1;} void main() //主函数{Linklist L; Linklist p,s;int i,k,m,n;L=CreatFromHead();printf("请输入查找的元素位置");scanf_s("%d",&i);printf("请输入相隔的位置:");scanf_s("%d",&k); m=0;s=Getlist(L,i);printf(".");while(mdata); s=p->next; n=Del_Linklist(L,p); m++;}}。
Luochuanren.Com洛川人-综合信息门户网站,涵盖生活常识、美食、创业、体育、旅游、家居、汽车、财经、互联网、科技、房产、教育等资讯。
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
工作时间:8:00-18:00
客服电话
17898872021
电子邮件
773537036@qq.com
扫码二维码
获取最新动态