开发者社区> 哈沙给> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

链表实现约瑟夫环

简介: //Dev c++ #include#include#include//调用putchar函数typedef struct stu{ int num; struct stu*next;}stu,*pointer;int main(){ int i,n,m,count; pointer p,q,r;...
+关注继续查看

//Dev c++

#include<stdio.h>
#include<malloc.h>
#include<string.h>//调用putchar函数
typedef struct stu{
int num;
struct stu*next;
}stu,*pointer;
int main()
{
int i,n,m,count;
pointer p,q,r;
r=p=q=(pointer)malloc(sizeof(pointer));
p->num=1;p->next=NULL;//无头结点
printf("Input n and m:");//m为步长
scanf("%d%d",&n,&m);
for(i=2;i<=n;i++)//建立链表
{
p=(pointer)malloc(sizeof(pointer));
p->num=i;
r->next=p;
r=r->next;
}
p->next=q;//循环链表
printf("出圈顺序为:\n");
for(i=1,count=0;count<n-1;)//删除(n-1)个数
{
if(i==m)
{
printf("%d ",q->num);
p->next=q->next;//删除q节点
free(q);
q=p->next;
count++;
i=1;
}
else
{
p=p->next;
q=q->next;
i++;//i++不能写在for循环内部
}
}
printf("%d ",p->num);
putchar('\n');
system("pause");
return 0;
}

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
react-12-单向数据流-ref-双向绑定的实现
写了了这么久 ,其实有个在vue里面我们经常使用的东西,在react里面至今都没提, 那就是vue里面的双向绑定,首先react里面是没有 双向绑定的,需要自己去实现 接下来,就一起来玩下吧,更多的 react和其他框架的区别,请看最下方的官方对比链接
49 0
使用dozer实现对象转换
Dozer的github地址:https://github.com/DozerMapper/dozer Dozer的官方文档:http://dozer.sourceforge.net/ 什么是DozerDozer是一个JavaBean映射工具库。
1165 0
javascript中使用循环链表实现约瑟夫环问题
1.问题    传说在公元1 世纪的犹太战争中,犹太历史学家弗拉维奥·约瑟夫斯和他的40 个同胞被罗马士兵包围。犹太士兵决定宁可自杀也不做俘虏,于是商量出了一个自杀方案。他们围成一个圈,从一个人开始,数到第三个人时将第三个人杀死,然后再数,直到杀光所有人。
738 0
数组法约瑟夫环
//数组法约瑟夫环//1000人限制,#include#includeint main(){ int a[1000]; int count=0;int i,j=0;int m,n; printf("Input n and m:"); scanf("%d%d",&n,&m); for(i=1;i
582 0
C#中使用晚绑定实现压缩Access数据库
C#中使用晚绑定实现压缩Access数据库. VB对Com后期绑定支持得很好,在C#中可以使用反射来实现. 函数实现代码如下:  1 public static void CompactAccessDB(string strMdbName) 2 { 3     string TempMdbName = Application.
810 0
+关注
哈沙给
渣渣一枚
1101
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载