利用环形链表实现 Josephus杀人游戏 1 #include <stdlib.h> 2 #include <stdio.h> 3 #include "circular.h" 4 5 void make_n(int n); 6 void kill_one(int, int); 7 void main(int argc, char *args[]){ 8 int i=1; //用i来记录当前点数 9 int n,m; 10 scanf("%d", &n); 11 scanf("%d", &m); 12 make_n(n); 13 printf("n=%d, m=%d\n",n,m); 14 list_node(); 15 printf("------------------\n"); 16 kill_one(m, i); 17 18 } 19 20 21 void make_n(int n) 22 { 23 link node = malloc(sizeof *node); 24 for(; n!=0; n--){ 25 node = make_node(n); 26 insert(node); 27 } 28 } 29 30 31 void kill_one(int m, int i) 32 { 33 link head = get_head(); 34 link node = head->next; 35 int len = 0; 36 while(node != head){ 37 if(i==m){ 38 printf("=========ko------------------=%d\n", node->item); 39 delete(node); 40 i=0; 41 } 42 i++; 43 node = node->next; 44 } 45 list_node(); 46 head = get_head(); 47 for(node=head; node->next != head; node=node->next){ 48 len++; 49 } 50 if(len>=m){ 51 printf("------------------\n"); 52 kill_one(m, i); 53 }else{ 54 printf("head->next->item=%d\n", head->next->item); 55 } 56 } 57
相关推荐
用链表法实现josephus,开发工具为C语言。
这个完全符合课本上习题的要求,我作业交的就是这个,我自己还在里面做了详细的注释
Josephus约瑟夫问题的循环链表实现.cpp
设有n个人围坐一圈并由1到n编号,从某个人开始报数,数到m的人出列,接着从出列的下一个人开始重新1到n报数,数到m的人又出列,如此反复地报数和出列,直到最后一个人出列为止,设计确定这n个人出列序列的程序
定义一个链表类和Josephus类,解决Josephus问题。Hint:链表类的对象是Josephus类的成员
约瑟夫环的循环链表实现,这个程序比较完整,有需要做试验的请速速下载。
Josephus问题可以描述为如下的一个游戏:N个人编号从1到N,围坐成一个圆圈,从1号开始传递一个热土豆,经过M次传递后拿着土豆的人离开圈子,由坐在离开的人的后面的人拿起热土豆继续进行游戏,直到圈子只剩下最后一...
自己写的 原创 希望能帮助到大家
Josephus 约瑟夫问题 实现 Josephus 约瑟夫问题 实现
#include #include #define NULL 0 #include typedef struct Lnode{ int data; struct Lnode *next; }joseph;
自己用VC编写的解决Josephus问题,能够根据任何输入得出最终结果,还算健壮,供大家参考,如有好意见欢迎讨论
Josephus
Josephus 问题的 C 语言代码 ,链表实现,有查找抄作
java实现约瑟夫环问题Josephus 约瑟夫问题 * 已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k(1,2,3...n)的人开始报数,数到m(1,2,3...)的那个人出列; * 他的下一个人又从1开始报数,...
2、 约瑟夫(Josephus)环问题:编号为1,2,3,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数的上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止。报m...
Josephus问题的顺序表实现 关于Josephus问题的顺序表实现
labview的josephus问题编程
单链表解决约瑟夫环问题
数据结构实验报告,用C写的Josephus问题的使用链表和向量的简单实现。
编程求Josephus问题:m个小孩围成一圈,从第一个小孩开始顺时针方向每数到第n个小孩时这个小孩就离开,最后剩下的一个小孩是胜利者。求第几个小孩是胜利者。