约瑟夫环的循环链表实.doc

约瑟夫环的循环链表实.doc

ID:56359155

大小:27.00 KB

页数:4页

时间:2020-06-22

约瑟夫环的循环链表实.doc_第1页
约瑟夫环的循环链表实.doc_第2页
约瑟夫环的循环链表实.doc_第3页
约瑟夫环的循环链表实.doc_第4页
资源描述:

《约瑟夫环的循环链表实.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、约瑟夫环的循环链表实现#include#include#defineNUMBER13 //可以通过输入确定人的个数#defineNEXT8   //确定报数的间隔数 #defineLENGTHsizeof(MEN)#defineNULL0structmen {    intnumber;    structmen*pMen;};typedefstructmenMEN;/********************************************//*约瑟夫环的循环链表实现    

2、                                   *//********************************************/voidmain(){    MEN*pOne=NULL,*pTwo=NULL,*pHead=NULL;    intclient; /* * 创建环形链表 */    pHead=pOne=pTwo=(MEN*)malloc(LENGTH);    pHead->number=1;    for(client=2;client<=NUMBER;client++) 

3、   {         pOne=(MEN*)malloc(LENGTH);         pTwo->pMen=pOne;         pOne->number=client;         pTwo=pOne;    }    pOne->pMen=pHead;    /*     * 进行操作     */    pTwo=pHead;    pOne=pTwo->pMen;    while(pOne->pMen!=pTwo)    {         for(client=0;client

4、ient++)        {             pTwo=pOne;             pOne=pOne->pMen;         }//  if(pOne==pHead)//对于单向链表的头指针删除问题已经不存在//   pHead=pOne->pMen;//  else     pTwo->pMen=pOne->pMen;     pOne=NULL;     free(pOne);     pOne=pTwo->pMen;     pOne=pOne->pMen;     pTwo=pTwo->pMe

5、n;//保持初始状态 } printf("%d",pOne->number);}对于每一位都有一个位权的实现:#include#include#defineLENGTHsizeof(MEN)#defineNULL0structmen { int   number; int   code; structmen*pMen;};typedefstructmenMEN;////////////////////////////////////////////////////////////////

6、////////////约瑟夫环的循环链表实现                                             //////////////////////////////////////////////////////////////////////////voidmain(){ MEN  *pOne =NULL,   *pTwo =NULL,   *pHead=NULL; int  client; int  NUMBER=13; //设置默认的人数 int  NEXT=3;    //选出的人数间隔的

7、初始间隔数 // // 输入人数 // printf("请输入游戏的人数:"); scanf("%d",&NUMBER); // // 创建环形链表 // pHead=pOne=pTwo=(MEN*)malloc(LENGTH); if(pHead==NULL) {  printf("头结点空间分配出错!");  return; } // // 初始这个链表,对头结点进行赋值 // pHead->number=1; printf("请输入第1位的密码:"); scanf("%d",&pHead->code); for(clien

8、t=2;client<=NUMBER;client++) {  pOne=(MEN*)malloc(LENGTH);  if(pOne==NULL)  {   printf("空间分配出错!");   return;  }    pTwo->pMen=pOne;

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

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

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