环形链表的约瑟夫问题(链表法,代码,注释)

 暂时水一下,后续会补,相关的公式法和递归,等做法(因为博主想水文还没看循环能做不)

环形链表的约瑟夫问题_牛客题霸_牛客网 (nowcoder.com)

单链表法博主写的匆忙,应该有优化的地方,有时间会精进修改

代码.

typedef struct SLRoundList{
    int data;//存编号
    struct SLRoundList* next;//下一节点指针
}SLRList;
//申请一个节点空间,返回指向节点的指针
SLRList* MallocNode(int x)
{
    SLRList* ps = (SLRList*)malloc(sizeof(int));
    //assert(ps)由于是在线做题,就写的没这些判断了,
    ps->data = x;
    ps->next = NULL;
    return ps;
}
//删输入指针pos的下一个节点
void Erase(SLRList* pos)
{
    SLRList* p1 = pos->next->next;
    free(pos->next);
    pos->next = p1;
}
int ysf(int n, int m ) {
    // write code here
    SLRList* ps = MallocNode(1);//当头节点的样子使用
    //,方便第一个申请空间的特殊情况归入进下面的for循环里 "pt->next"第一次是NULL的话不好操作
    SLRList* pt = ps;
    for(int i = 2; i <= n; i++){
        pt->next = MallocNode(i);
        pt = pt->next;
    }
    pt->next = ps;//首尾相连
    for(int i = 1; 1; i++){//持续数个数,要数到m*(n-1)才结束,图省事写了个1,
    //不想要后面的if判断的话,可以改一下
        if(i % m == 0){
            Erase(pt);
            continue;
        }
        pt = pt->next;
        if(pt->next == pt){
            break;
        }
    }
    return pt->data;
}

这里不要脸求个三连(点赞,收藏 + 关注),你的小小的帮助,可以让博主开心一整天!

相关推荐

  1. 环形问题

    2024-02-01 15:38:03       41 阅读
  2. C++ 环形(解决问题)

    2024-02-01 15:38:03       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-01 15:38:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-01 15:38:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-01 15:38:03       82 阅读
  4. Python语言-面向对象

    2024-02-01 15:38:03       91 阅读

热门阅读

  1. 算法笔记刷题日记——Day1 C_C++在ACM中的常用语法

    2024-02-01 15:38:03       60 阅读
  2. redis基本数据结构使用场景

    2024-02-01 15:38:03       52 阅读
  3. Google 搜索语法

    2024-02-01 15:38:03       41 阅读
  4. 物联网中基于WIFI的室内温度检测系统设计

    2024-02-01 15:38:03       52 阅读
  5. 【力扣经典面试题】121. 买卖股票的最佳时机

    2024-02-01 15:38:03       51 阅读
  6. C. Factorials and Powers of Two -二进制枚举

    2024-02-01 15:38:03       58 阅读
  7. xml 工具类

    2024-02-01 15:38:03       46 阅读
  8. 编译LVGL遇到的问题及解决方式

    2024-02-01 15:38:03       49 阅读
  9. 37.【TypeScript 教程】TSLint 与 ESLint

    2024-02-01 15:38:03       60 阅读
  10. kafka实现延迟队列

    2024-02-01 15:38:03       44 阅读
  11. 2024年1月个人工作生活总结

    2024-02-01 15:38:03       63 阅读
  12. Linux命令之 vim 详解

    2024-02-01 15:38:03       49 阅读