约瑟夫环双向列表之终极优化
来源:互联网 发布:经传软件三板斧不准 编辑:程序博客网 时间:2024/06/03 03:31
#include<stdio.h>#include<stdlib.h>typedef struct Node{ Node *pre; Node *next; int data;} *List;void Init(List &l,int n){ Node *p,*current; p=(List)malloc(sizeof(Node)); p->pre=NULL; p->next=NULL; p->data=1; l=p; current=p; for(int i=2;i<=n;i++) { p=(List)malloc(sizeof(Node)); p->pre=current; p->next=NULL; p->data=i; current->next=p; current=p; } l->pre=current; current->next=l;}void showList(List l,int n){ for(int i=1;i<=n;i++) { printf("%d\t",l->data); l=l->next; } printf("\n");}int main(){ int n,m; scanf("%d%d",&m,&n); List l,p,pd; Init(l,n); p=l->pre; pd=p->next; int len=n; while(len!=1) { //showList(l,len); int Kount=0,m1=m%len; if(m1<=len/2) while(Kount!=(m%len))//移动方式根据m'的不同而进行相应的调整,当m'比较大的时候,就往左移,相反,就往右边移动 { p=p->next; pd=p->next; Kount++; } else if(m1>len/2) { while(Kount!=len-m1) { p=p->pre; pd=p->next; Kount++; } } p->next=pd->next; free(pd); pd=NULL; l=p->next; l->pre=p; pd=p->next; len-- ; } printf("%d\n",l->data); return 0;}
阅读全文
0 0
- 约瑟夫环双向列表之终极优化
- UVa 133 双向约瑟夫环
- TOMCAT之终极优化
- 【循环列表】之约瑟夫问题
- 数据结构之双向列表实现
- 双向链表做约瑟夫环(java)
- 约瑟夫环(1)-双向链表
- 双向链表实现约瑟夫环
- 双向链表及约瑟夫环代码
- 数据结构基础之双向链表(约瑟夫问题)
- 约瑟夫环问题的优化
- 约瑟夫环的数学优化
- 约瑟夫双向链表
- 1. 双向约瑟夫问题
- 双向约瑟夫问题
- 数据结构--双向约瑟夫
- 算法之约瑟夫环
- Python之约瑟夫环
- GROUP BY表分组的用法
- IOS语音采集(采集数据大小对齐算法)
- Mina服务端客户端心跳机制
- 使用LVS实现负载均衡原理及安装配置详解
- 关于request 作用域值用resonse重定向到jsp页面获取不到参数值
- 约瑟夫环双向列表之终极优化
- Plugin with id 'com.jfrog.bintray' not found. Plugin with id 'com.github.dcendents.android-maven' n
- 修改myeclipse的字体和背景色
- ViewDragHelper实现自定义view侧滑菜单
- MFC窗口消息PostMessage和SendMessage
- 动态规划--(01背包 poj3624 )
- 基于 Redis 实现分布式应用限流
- jdbc连接oracl数据库并进行测试查询
- 无法添加外键约束的原因(cannot add foreign key constraint)