Circular list example -- Josephus problem

原创 2008年10月02日 13:42:00
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. typedef struct node* link;
  4. struct node
  5. {
  6.     int item;
  7.     link next;
  8. };

  9. int main( int argc, char *argv[] )
  10. {
  11.     int i, N = atoi( argv[1] ), M = atoi( argv[2] );
  12.     link t = malloc( sizeof *t ), x = t;
  13.     t->item = 1;
  14.     t->next = t;
  15.     for ( i = 2; i <= N; i++ )
  16.     {
  17.         x = ( x->next = malloc( sizeof *t ) );
  18.         x->item = i;
  19.         x->next = t;
  20.     }
  21.     while ( x != x->next )
  22.     {
  23.         for ( i = 1; i < M; i++ )
  24.             x = x->next;
  25.         x->next = x->next->next;
  26.         N--;
  27.     }
  28.     printf( "%d/n", x->item );
  29.     return 0;
  30. }
from Robert Sedgewick's Alorithms in C

约瑟夫问题(Josephus_problem) 终极解析

hdu2925   poj 2244 HDU 2211约瑟夫问题数学解法 首先看一看最原始的约瑟夫问题: 1   约瑟夫环(Josephus)问题是由古罗马的史学家约瑟夫(Josephus)...
  • xiangyong58
  • xiangyong58
  • 2014年03月05日 21:04
  • 3522

约瑟夫问题 The Josephus Problem 非递归算法求解

据说著名犹太历史学家 Josephus有过以下的故事: 在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,...
  • likerxu
  • likerxu
  • 2015年04月05日 21:24
  • 546

Josephus Problem (约瑟夫环数学解法)

约瑟夫环是一个非常经典的数学问题,n个人围成一圈,从1开始报数,每当有人报到m时,他被淘汰,下一个人继续从1开始报数,问最后的获胜者是谁?        有一种很经典的算法是用链表/数组来模拟整个游戏...
  • wchhlbt
  • wchhlbt
  • 2017年03月14日 19:58
  • 866

约瑟夫问题Josephus problem

约瑟夫问题:经典算法已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆...
  • FIELDOFFIER
  • FIELDOFFIER
  • 2015年04月25日 17:21
  • 1196

Circular linked list and Josephus ring

class ListNode: def __init__(self, data): self.data = data self.next = None ...
  • williamcs
  • williamcs
  • 2012年11月20日 09:59
  • 541

Josephus环问题求解(Java实现)

Josephus环问题: 古代某法官要判决number个犯人的死刑,他有一条荒唐的法律,将犯人站成一个圆圈,从第start个人开始数起,每数到第distance个犯人,就拉出来处决,然后再从下一个开...
  • dingjing1994
  • dingjing1994
  • 2017年05月11日 22:37
  • 320

Circular Doubly Linked List 双向循环链表 C++ 例子

What a circular doubly linked list looks like? Look at Figure1, It is a circular doubly linke...
  • fox64194167
  • fox64194167
  • 2013年04月15日 10:42
  • 2561

Sorted insert for circular linked list

在一个已排序的循环聊表中插入一个新节点,返回新的头节点 参考:点击打开链接 package list; import z_dataStructure.ListNode; //http://ww...
  • sjphiChina
  • sjphiChina
  • 2016年08月17日 18:19
  • 217

循环链表(Circular Linked List)

循环链表(Circular Linked List) 1. 循环链表的概念 1.1 循环链表的定义 循环链表是另一种形式的表示线性表的链表。 1.2 循环链表的结点结构 循环链表的结点包括两个...
  • cainv89
  • cainv89
  • 2016年05月03日 00:42
  • 4542

约瑟夫环问题(josephus problem)详解

约瑟夫环问题描述:   编号为1,2,3...n的人一词围成一圈,从第k个人开始报数(从1开始),数到m的人退出。接着下一个人又从1开始报数,数到m的人退出,以此类推。问:剩下的人的编号是多少?   ...
  • sun_star1chen
  • sun_star1chen
  • 2013年12月26日 23:11
  • 3409
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Circular list example -- Josephus problem
举报原因:
原因补充:

(最多只允许输入30个字)