2014年辽宁省数据统计深入
1、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。现要求采用循环链表结构设计一个算法,模拟此过程。
#include<stdlib.h>
typedef int datatype;
typedef struct node
{datatype data;
struct node *next;
}listnode;
typedef listnode *linklist;
void jose(linklist head,int s,int m)
{linklist k1,pre,p;
int count=1;
pre=NULL;
k1=head; /*k1为报数的起点*/
while (count!=s) /*找初始报数起点*/
{pre=k1;
k1=k1->next;
count++;
}
while(k1->next!=k1) /*当循环链表中的结点个数大于1时*/
{ p=k1; /*从k1开始报数*/
count=1;
while (count!=m) /*连续数m个结点*/
{ pre=p;
p=p->next;
count++;
}
pre->next=p->next; /*输出该结点,并删除该结点*/
printf("%4d",p->data);
free(p);
k1=pre->next; /*新的报数起点*/
}
printf("%4d",k1->data); /*输出最后一个结点*/
free(k1);
}
main()
{linklist head,p,r;
int n,s,m,i;
printf("n=");
scanf("%d",&n);
printf("s=");
scanf("%d",&s);
2014年辽宁省分析数据深入_数学_小学教育_教育专区。2014年辽宁省分析数据深入 1 、二路插入排序是将待排关键字序列 r[1..n] 中关键字分二路分别按序插入到...
2015年辽宁省数据统计深入_韩语学习_外语学习_教育专区。2015年辽宁省数据统计深入 1、两棵空二叉树或仅有根结点的二叉树相似;对非空二叉树,可判左右子树是否...
2014年辽宁省数据统计要领_数学_小学教育_教育专区。2014年辽宁省数据统计要领 1、对二叉树的某层上的结点进行运算,采用队列结构按层次遍历最适宜。 int LeafK...
2014年辽宁省数据统计高级_韩语学习_外语学习_教育专区。2014年辽宁省数据统计高级 1、二路插入排序是将待排关键字序列r[1..n]中关键字分二路分别按序插入到...
2015年辽宁省数据统计深入_韩语学习_外语学习_教育专区。2015年辽宁省数据统计深入 1、给定 n 个村庄之间的交通图,若村庄 i 和 j 之间有道路,则将顶点 i 和 ...
2014年辽宁省数据统计要领_韩语学习_外语学习_教育专区。2014年辽宁省数据统计要领 1、对二叉树的某层上的结点进行运算,采用队列结构按层次遍历最适宜。 int LeafK...
2014年辽宁省数据统计加强_韩语学习_外语学习_教育专区。2014年辽宁省数据统计加强 1、4、 void LinkList_reverse(Linklist &L) //链表的就地逆置;为简化算法,...
2014年辽宁省数据统计高级_韩语学习_外语学习_教育专区。2014年辽宁省数据统计高级 1、有一种简单的排序算法,叫做计数排序(count sorting) 。这种排序算法对一个待...
2014年辽宁省数据统计纲要_数学_小学教育_教育专区。2014年辽宁省数据统计纲要 1、有一种简单的排序算法,叫做计数排序(count sorting) 。这种排序算法对一个待排序...
2014年辽宁省数据统计入门_韩语学习_外语学习_教育专区。2014年辽宁省数据统计入门 1、设指针变量 p 指向双向链表中结点 A,指针变量 q 指向被插入结点 B,要求给...

我要评论