约瑟夫问题的循环链表实现
1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 using namespace std; 5 struct node{ 6 int x; 7 node* next; 8 }; 9 node* creatlist(int n) 10 { 11 int i; 12 node *temp=NULL,*head=NULL,*tail=NULL; 13 for(i=0;i<n;i++) 14 { 15 if(head==NULL) 16 { 17 head=(node*)malloc(sizeof(node)); 18 head->x=i+1; 19 tail=head; 20 } 21 else 22 { 23 temp=(node*)malloc(sizeof(node)); 24 temp->x=i+1; 25 //temp->next=NULL; 26 tail->next=temp; 27 tail=temp; 28 } 29 } 30 tail->next=head; 31 return head; 32 } 33 void output(node* head) 34 { 35 node* p=head; 36 while(p!=NULL) 37 { 38 cout<<p->x<<' '; 39 p=p->next; 40 } 41 } 42 node* find(int k,node* head) 43 { 44 int i=0; 45 node *p=head; 46 for(i=0;i<k-1;i++) 47 p=p->next; 48 return p; 49 } 50 void out(node* p,int m) 51 { 52 int i=0; 53 node *pre=NULL; 54 while(p->next!=p) 55 { 56 for(i=0;i<m-1;i++) 57 { 58 pre=p; 59 p=p->next; 60 } 61 cout<<p->x<<' '; 62 pre->next=p->next; 63 p=p->next; 64 } 65 cout<<p->x; 66 } 67 int main() 68 { 69 int n,k,m; 70 node *head,*p; 71 cin>>n>>k>>m; 72 head=creatlist(n); 73 //output(head); 74 p=find(k,head); 75 cout<<p->x<<endl; 76 out(p,m); 77 }
转载于:https://www.cnblogs.com/a1225234/p/4615965.html
约瑟夫问题的循环链表实现相关推荐
- 约瑟夫环 单向循环链表实现
约瑟夫环 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去,直到圆桌周围 ...
- 约瑟夫环之循环链表实现
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开 始报数,数到m的那个人又出列:依此规律 ...
- python约瑟夫环单向循环链表_约瑟夫环的单向循环链表的实现代码
/************************************************************************* > File Name: JosephCir ...
- [1197]约瑟夫问题 (循环链表)SDUT
约瑟夫问题 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1到n ...
- 约瑟夫问题,循环链表
问题描述 传说有这样一个故事,在罗马人占领乔塔帕特后,39个犹太人与约瑟夫及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,第一个人从1开始 ...
- 数据结构实验报告——约瑟夫问题(循环链表)
1.实验目的 (1)熟悉上机环境,掌握上机操作方法和步骤: (2)掌握线性表的特点.逻辑结构和物理实现: (3)掌握单向链表的建立.插入.删除等基本操作的实现: (4)掌握循环链表的建立.插入.删除等 ...
- Java 约瑟夫环(循环链表解决)
问题描述:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉.例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1. 解题思路:因为是围成一圈,所以用循环链表是最符 ...
- 约瑟夫环(循环链表)
约瑟夫环 约瑟夫环问题的描述是:编号为1,2,-,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停 ...
- 约瑟夫问题用循环链表解决
问题 据说著名犹太历史学家Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式 ...
- java约瑟夫环 循环链表_约瑟夫环_循环链表JAVA解答
编写测试案例 public class Cicle { @Test public void test() { LinkedList linkedList = new LinkedList(); lin ...
最新文章
- 长短期记忆网络_昆明理工大学刘可真、苟家萁、骆钊等:粒子群优化长短期记忆网络模型如何进一步提高变压器油中溶解气体浓度的精准预测?...
- zabbix客户端一键安装脚本(主动模式监控)
- 编辑流程图_如何使用ProcessOn快速绘制一张高颜值流程图?
- 现代软件工程 作业 个人项目
- 4位院士的4个正确决定,成功扭转疫情!建议人人都该知道
- cmk聪明客机器人餐厅_晒晒我家85平新房,餐厅装修的太漂亮了,儿童房飘窗更实用!...
- (油菜花)为什么别的项目中的category拖到自己项目中无法使用?
- 在OS上kill掉v$session中status值为killed的进程
- 关于微信服务号使用百度地图获取定位不准问题
- 微信小程序 测试号 申请
- CVPR 2021 论文和开源项目合集
- html的重置按钮reset无反应,reset() 按钮没有反应???
- Unicode中的UTF-8, UTF-16, UTF-16LE, UTF-16BE编码及转换 | Java基础
- 2020年基金从业资格考试报名啦
- CUDA入门和网络加速学习(三)
- 隔离放大器工作原理及其应用
- 一年之计在于春,一日之计在于晨,头条android面试节奏
- openwrt 添加4G拨号(qmi驱动)
- 使用Business Events和Business Monitor对传感器数据进行智能分析
- MQTT协议——什么是MQTT(一)
热门文章
- error: jump to label ‘XXXX’ [-fpermissive]
- VBscript.Encode 解码器
- left join 和 left outer join 有什么区别
- 大数据学习之路(七)——学习小结
- 设计模式--简单工厂模式
- js实现数据结构及算法之二叉树(Binary Tree)
- 被coding.net坑了, Git 动态Pages要停掉...
- Android设计模式(九)--外观模式
- AndroidStudio 生成Jar并混淆
- socket简单通信