如何用用循环链表实现约瑟夫回环问题

您所在的位置:网站首页 约瑟夫环的原理 如何用用循环链表实现约瑟夫回环问题

如何用用循环链表实现约瑟夫回环问题

#如何用用循环链表实现约瑟夫回环问题| 来源: 网络整理| 查看: 265

用循环链表实现约瑟夫回环问题;

数据结构;

循环链表的应用(约瑟夫回环问题)n个数据元素构成一个环,从环中任意位置开始计数,计到m将该元素从表中取出,重复上述过程,直至表中只剩下一个元素。

用c语言执行。

代码如下

#include #include typedef struct Sqlist{ int data; struct Sqlist* next; }Sqlist,*LinkList; void InitList(LinkList &L){ L=(Sqlist*)malloc(sizeof(Sqlist)); L->next=L; } void ListInsert(LinkList &L,int i,int e) { Sqlist *p=NULL; int j=0; p=L; while(p!=NULL&&jnext; j++; } Sqlist *s=(Sqlist*)malloc(sizeof(Sqlist)); s->data=e; s->next=p->next; p->next=s; }//构建循环链表 int a(LinkList &L,int n,int m) { Sqlist*p=NULL; p=L; int a,j; for(a=1;anext=p->next->next; } return (p->data); }//循环取出操作 int main() { int i,n,m; scanf("%d %d",&n,&m);//n个数据元素构成环,计数到m取出; LinkList L; InitList(L); for(i=1;i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3