课程设计---约瑟夫环

 题目:约瑟夫环

【问题描述】
约瑟夫(Joseph)问题的一种描述是:编号为1,2,.....,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个人开始顺时针方向自1开始报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他的顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有的人都出列为止。试设计一个程序求出列顺序。

【其本要求】
利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。

【测试数据】
M的初值为20;n=7,7个人密码依次为:3,1,7,2,4,8,4,首先m的值为6(正确的出列顺序应为6,1,4,7,2,3,5)。

运行结果如下图:

结构体定义中

typedef 声明,简称 typedef,为现有类型创建一个新的名字。
typedef struct Node  
{  
int data;  
struct Node* next;  
}LNode, *LinkList;  
LNode就相当于struct Node ,起了一个别名。
*LinkList也相当于struct Node


也就是:

LNode 等价 struct Node
LinkList 等价 LNode* 等价 struct Node*

LNode a;等价 struct Node a;
LinkList p;等价 LNode* p;等价 struct Node* p;

posted @ 2011-07-03 09:47  新技术  阅读(479)  评论(0编辑  收藏  举报