注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

告别迷茫

梦想与现实的差距,就是我们生活的意义。因为我们有差距,我们才会一直积累,在努力。

 
 
 

日志

 
 

约瑟夫__数据结构的实验——严老   

2014-10-27 18:46:11|  分类: 数据结构---严老 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#include "stdafx.h"
#include<stdlib.h>
#include "stdafx.h"
#include<cstdio>
typedef struct Node
{ int index;
int password;
struct Node *next;
}Node;
Node *CreatList(int n) 
 //创建一个含n个人的循环链表
{
 int i;int password;
 Node *head,*tail;
 head=tail=(Node*)malloc(sizeof(Node));
 for(i=1;i<n;i++)  
 { 
  tail->index=i;
  printf("*请输入第%d号所带密码: ",i);
  scanf("%d",&password);
  tail->password=password;  
  tail->next=(Node*)malloc(sizeof(Node));
  tail=tail->next;
 }
 tail->index = i;
 printf("*请输入第%d号所带密码: ",i);
 scanf("%d",&password);
 tail->password=password;
 tail->next = head;   
 //return head;
 return tail;
}
void Jposeh(Node*  &tail,int password,int number)
{
 int i,j;
 Node *head=tail->next;
 for(i=1;tail!=head;i++)
 { 
   for(j = 1; j <password; ++j) 
   {    
     tail = head;   
     head = head->next;
    }
    tail->next = head->next; 
     printf("\n第%d个出局的人的编号是:%d        密码是:%d",i,head->index,head->password);
     password=head->password;
     free(head); 
  head = tail->next;
   
 }
 printf("\n第%d个出局的人的编号是:%d        密码是:%d",i,tail->index,tail->password);
 free(tail);
 
}
int _tmain(int argc, _TCHAR* argv[])

 int numbers, Password;
 char stop;
 //Node *head; 
 Node *tail;
 printf("*******************************\n");
 printf("*       约瑟夫环问题          *\n");
 printf("*      输入人数和起始密码:   *\n");
 printf("*      jsut   7 20            *\n");
 printf("*******************************\n");
 do
 { 
  printf("输入约瑟夫环问题的人数和起始密码:\n"); 
  scanf("%d%d", &numbers, &Password); 
  //head=CreatList(numbers);
  tail=CreatList(numbers); 
  printf("*******************************\n"); 
  printf("*        输出结果如下         *\n"); 
  printf("*******************************\n"); 
  //Jposeh(head,Password);
  Jposeh(tail,Password,numbers);
  printf("\n*******************************\n"); 
  printf("*  是否继续进行是 Y(y) 否N(n) *\n"); 
  printf("*******************************\n"); 
  getchar(); 
  scanf("%c",&stop); 
  getchar();
 }while(stop=='y'||stop=='Y');
 return 0;
}
  评论这张
 
阅读(10)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017