最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
约瑟夫环[循环链表的应用]
时间:2022-07-02 10:56:55 编辑:袖梨 来源:一聚教程网
Josephy 问题概述: 假设有N个人坐在圆桌周围,从第S个人开始报数,报到M的出列,然后再从下一个人开始数报 数,数到M的人出列¨¨¨如此重复,知道所有的人都出列为止。要求出列的先后顺序输出每个人的信息 !
# include
# include
typedef int datatype;
typedef struct cnode
{
datatype data;
struct cnode *next;
}clistnode;
typedef clistnode *clinklist;
clinklist head;
void Joseph(int n,int m,int s)
{
int i,j;
clinklist creatclinklist(int);
clistnode *p,*q,*r,*t;
head=creatclinklist(n);
q=head;
if(s>n) printf("error!n");
for(i=1;i q=q->next;
p=q->next;
for(i=1;i<=n;i++)
{
j=1;
while(j
r=p;
p=p->next;
if(p==head)
continue;
j++;
}
printf("%4d",p->data);
t=p;
if(p->next==head)
{
p=p->next->next;
r->next=head;
}
else
{
p=p->next;
r->next=p;
}
free(t);
}
}
clinklist creatclinklist(int n)
{
int i;
clinklist p;
p=(clinklist)malloc(sizeof(clistnode));
p->next=NULL;
head=p;
printf("Please input the element records of the chain!n");
for(i=n;i>0;i--)
{ p=(clinklist)malloc(sizeof(clistnode));
scanf("%d",&p->data);
if(n==i)
{
p->next=head;
head->next=p;
}
else
{
p->next=head->next
相关文章
- 《燕云十六声》配置要求介绍 12-25
- 《燕云十六声》搬砖介绍 12-25
- 时空中的绘旅人天宇之间怎么玩 绘旅人天宇之间活动玩法介绍 12-25
- QQ2024年度报告怎么看 2024qq年度报告玩法介绍 12-25
- 归龙潮珠砂什么时候up 归龙潮红缘绮梦卡池介绍 12-25
- 王者荣耀S38赛季有什么更新 12-25
热门栏目
-
php教程
php入门 php安全 php安装 php常用代码 php高级应用 -
asp.net教程
基础入门 .Net开发 C语言 VB.Net语言 WebService -
手机开发
安卓教程 ios7教程 Windows Phone Windows Mobile 手机常见问题 -
css教程
CSS入门 常用代码 经典案例 样式布局 高级应用 -
网页制作
设计基础 Dreamweaver Frontpage js教程 XNL/XSLT -
办公数码
word excel powerpoint 金山WPS 电脑新手 -
jsp教程
Application与Applet J2EE/EJB/服务器 J2ME开发 Java基础 Java技巧及代码