循环链表中约瑟夫环的问题
2014-08-09 10:52
302 查看
在程序员面试宝典中,有道面试题如下:
已知n个人(以编号1,2,3,,...,n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;从他的下个开始,数到k重新数数,数m个数,那个人出列;以此重复下去,直到圆桌周围的人全部出列。试用C++编程实现。
已知n个人(以编号1,2,3,,...,n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;从他的下个开始,数到k重新数数,数m个数,那个人出列;以此重复下去,直到圆桌周围的人全部出列。试用C++编程实现。
#include <iostream> using namespace std; struct node { int data; node* next; }; void fun(int n,int m,int k) { node* head,*p1,*p2,*first,*second; int m1,k1; head=(node*)malloc(sizeof(node)); head->data=1; p1=head; for(int i=2;i<=n;i++) { p2=(node*)malloc(sizeof(node)); p2->data=i; p1->next=p2; p1=p2; } p1->next=head; first=head; while(n--) { m1=m; k1=k; while(k1-1) { second=first; first=first->next; --k1; }//找到首先开始报数的位置; while(m1-1) { second=first; first=first->next; --m1; } second->next=first->next; printf("%d->",first->data); free(first); first=second->next; } } int main() { fun(13,4,1); }
相关文章推荐
- 用单向循环链表解决约瑟夫环(Joseph)问题
- 循环链表解约瑟夫环问题
- 第十课 循环链表,约瑟夫环问题的解决
- 约瑟夫环问题单循环链表解法
- 数据结构(4)--循环链表的应用之约瑟夫环问题以及线性表总结之顺序表与链表的比较
- 约瑟夫环问题--循环链表
- 循环链表之约瑟夫环问题
- 循环链表 约瑟夫环问题实现
- 循环链表与约瑟夫环问题
- 循环链表解决约瑟夫环问题
- 单循环链表 解决约瑟夫环的问题
- 约瑟夫环问题的亲身实践(和循环链表有关)!
- 循环链表解决约瑟夫环问题
- 线性表---单循环链表(约瑟夫环问题)
- 循环链表解决约瑟夫环问题
- 循环链表 CircleList的实现并解决约瑟夫环问题
- 循环链表—约瑟夫环问题
- hdoj_5643 King's Game(约瑟夫环问题变种)----超时版本(自己模拟的循环链表)
- 循环链表-约瑟夫环问题
- 约瑟夫环问题 【循环链表的应用】