循环链表解决约瑟夫问题(简化版)
来源:互联网 发布:好听的淘宝客服昵称 编辑:程序博客网 时间:2024/05/07 07:18
约瑟夫环是一个经典的数学的应用问题:已知N个人(以编号1,2,3...N分别表示)围坐在一张圆桌周围。从编号为1的人开始报数,数到M的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
这个代码非常简短,但还是利用循环链表完成了求解约瑟夫问题的功能
代码如下:
#include<iostream>#include<cassert>using namespace std;typedef struct Node{int item;struct Node *next;}ListNode,*List;int main(){int M;//规则(隔M个数)int N;//人数(N个人)int a;//编号int i;cout<<"input the N and M"<<endl;cin>>N>>M;List head=(List)malloc(sizeof(ListNode));assert(head!=NULL);cin>>a;head->item=a;head->next=head;ListNode *p=head;for(i=2;i<=N;i++)//构造循环链表,值为1的结点为链表头{cin>>a;p->next=(List)malloc(sizeof(ListNode));p=p->next;p->item=a;p->next=head;}while(p!=p->next)//while循环开始时,p指向链表的尾结点{for(i=1;i<M;i++)p=p->next;ListNode *targetnode=p->next;cout<<targetnode->item<<"出局"<<endl;p->next=p->next->next;free(targetnode);}cout<<p->item<<endl;return 0;}
0 0
- 循环链表解决约瑟夫问题(简化版)
- 循环链表解决约瑟夫问题(简化版)
- 循环链表解决约瑟夫问题
- 循环链表解决约瑟夫环问题
- 循环链表解决约瑟夫环问题
- 用循环链表解决约瑟夫问题
- 用循环链表解决约瑟夫问题
- 循环链表解决约瑟夫环问题
- POJ3750 循环链表解决约瑟夫问题
- 循环链表解决约瑟夫环问题
- 约瑟夫环问题 (用循环链表解决)
- 数据结构(三):循环单链表解决约瑟夫问题
- Java用循环链表解决约瑟夫环问题(循环报数)
- 用单向循环链表解决约瑟夫环问题
- 用个循环链表解决约瑟夫环问题
- [转]用单向循环链表解决约瑟夫环问题
- 双向循环链表解决Josephus(约瑟夫)问题
- 用循环链表解决约瑟夫(josephu)问题
- SwipeRefreshLayout完美添加及完善上拉加载功能
- 知名互联网公司网站架构图
- AS3 Starling塔防教程——第七部分——声音,统计和存储
- 共和国复合件法国恢复和发动机
- 几个房间高合金钢脚后跟
- 循环链表解决约瑟夫问题(简化版)
- 穿插分类设计
- 好几个号结构化结婚
- android 双击退出
- CSS 的优先级机制[总结]
- LLVM (4) 11.3 LLVM的代码表示:LLVM IR
- js 刷新页面的几种方式
- android银联支付
- AS3 Starling塔防教程——第八部分——UI菜单组件