Chinaunix首页 | 论坛 | 博客
  • 博客访问: 23936
  • 博文数量: 3
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2016-10-12 20:20
个人简介

linux爱好者

文章存档

2017年(1)

2016年(2)

我的朋友

分类: C/C++

2016-10-18 22:04:53


 

点击(此处)折叠或打开

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. typedef struct node
  4. {
  5.     int num;
  6.     struct node *next;
  7. }LinkNode;
  8. LinkNode *create_joseph_loop(int n)
  9. {
  10.     int i;
  11.     LinkNode *tmp;
  12.     LinkNode *head;
  13.     LinkNode *p;
  14.     head = (LinkNode *)malloc(sizeof(LinkNode));
  15.     head->num = 1;
  16.     p = head;
  17.     for(i = 2;i <= n;i ++){
  18.         tmp = (LinkNode *)malloc(sizeof(LinkNode));
  19.         tmp->num = i;
  20.         p->next = tmp;
  21.         p = tmp;
  22.     }
  23.     p->next = head;
  24.     return head;
  25. }
  26. void printf_joseph_loop(LinkNode *head)
  27. {
  28.     LinkNode *p;
  29.     p = head;
  30.     do{
  31.         printf("%d ",p->num);
  32.         p = p->next;
  33.     }while(p != head);
  34.     printf("\n");
  35.     return;
  36. }
  37. void ans_joseph(LinkNode *head,int k,int m)
  38. {
  39.     int i;
  40.     LinkNode *p;
  41.     LinkNode *tmp;
  42.     p = head;
  43.     //找到第K个人
  44.     for(i = 0;i < k - 1;i ++){
  45.         p = p->next;
  46.     }
  47.     while(p->next != p){
  48.         //开始计数,找到要删除的人
  49.         for(i = 0;i < m - 1;i ++){
  50.             p = p->next;
  51.         }
  52.         //删除p的后一个节点
  53.         //
  54.         //记录p的后一个节点
  55.         tmp = p->next;
  56.         printf("%d ",p->num);
  57.         //将后一个节点数据赋值给p节点
  58.         p->num = tmp->num;
  59.         //将后一个节点删除
  60.         p->next = tmp->next;
  61.         free(tmp);
  62.     }
  63.     printf("%d\n",p->num);
  64.     free(p);
  65.     return;
  66. }
  67. int main(int argc, const char *argv[])
  68. {
  69.     LinkNode *head = create_joseph_loop(8);
  70.     printf_joseph_loop(head);
  71.     ans_joseph(head,3,4);
  72.     return 0;
  73. }

阅读(1750) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇: Exynos4412 文件系统制作—— 文件系统移植

给主人留下些什么吧!~~