链表:约瑟夫环

#include<iostream>
using namespace std;
struct Circle  //创建结构体Circle
{int index; //编号Circle* next; //指针变量next指向一个节点
};
Circle* CreateList(int n) //创建链表
{Circle* head, * p; //head为头指针,p为当前指针head = p = new Circle; //创建存储空间int i;for (i = 1; i < n; i++){p->index = i; //进行编号p->next = new Circle; //为下一个节点创建存储空间p=p->next;  //指针变量p指向下一个节点}p->index = i; //对最后一个节点进行编号p->next = head; //最后一个节点时,指针变量p指向头指针return head; //返回头指针
}
Circle* DeleteNode(Circle* head, Circle* d) //删除节点
{   //head为头指针,d为指向需要删除节点的指针Circle* p = head; while (p->next != d) p = p->next; //查找节点p->next = d->next; //前一个和后一个相连,跳过ddelete d; //删除d所指向的节点return p; //返回p指针
}
Circle* NumberOff(Circle* head) //报数
{int k = 1;Circle* p = head; while (p->next != p) //p的下一个节点不为p时,即不是只剩下一个节点时{k++; //继续报数p = p->next; if (k % 3 == 0) //当报数为3的倍数时,退出圈子p = head = DeleteNode(head, p);//调用删除节点函数}return p; //返回指针p
}
int main()
{int n; //有n个人cin >> n;Circle* list = CreateList(n); //调用创建链表函数list = NumberOff(list); //调用报数函数cout << list->index << endl; //输出最后留下的一个人的编号
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/310867.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工业机器人与计算机技术:驱动现代工业变革

工业机器人与计算机技术&#xff1a;驱动现代工业变革 随着科技的飞速发展&#xff0c;工业机器人与计算机技术已经成为现代工业制造的核心驱动力。这两者之间的联系日益紧密&#xff0c;共同推动着工业生产的自动化、智能化和高效化。 一、工业机器人&#xff1a;从机械手臂…

面向移动设备的深度学习—基于TensorFlow Lite,ML Kit和Flutter

推荐 深度学习正迅速成为业界热门的话题。《面向移动设备的深度学习—基于TensorFlow Lite&#xff0c;ML Kit和Flutter》采用以工业和移动应用为中心的方法介绍深度学习的概念及其用例。本书将讨论一系列项目&#xff0c;涵盖移动视觉、面部识别、智能AI助手和增强现实等任务…

代数结构与图论

文章目录 图的基本概念欧拉图与哈密顿图树平面图代数系统群与环格与布尔代数 图的基本概念 图的阶&#xff1a;图中的顶点数 &#xff0c;n 个顶点被称为 n 阶图零图&#xff1a;一条边都没有 平凡图&#xff1a;一阶零图基图&#xff1a;将有向图的各条有向边改成无向边所得到…

java虚拟机内存管理

文章目录 概要一、jdk7与jdk8内存结构的差异二、程序计数器三、虚拟机栈3.1 什么是虚拟机栈3.2 什么是栈帧3.3 栈帧的组成 四、本地方法栈五、堆5.1 堆的特点5.2 堆的结构5.3 堆的参数配置 六、方法区6.1 方法区结构6.2 运行时常量池 七、元空间 概要 根据 JVM 规范&#xff0…

动态令牌的原理(OTP HOTP TOTP)

动态令牌的原理(OTP & HOTP &TOTP) 文章目录 动态令牌的原理(OTP & HOTP &TOTP)前言2FA&#xff08;Two-Factor Authentication&#xff09;2FA实现方式1: OTP&#xff08;One-Time Password&#xff09;2FA实现方式2: HOTP&#xff08;HMAC-based One-Time Pa…

Tomcat和Servlet

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Tomcat是什么&#xff1f;1.1下载&#xff1a;1.2 tomcat是什么1.3启动服务器&#xff1a; 二.部署三、Servlet3.1创建项目3.2引入依赖pom.xml的所有代码 3…

【neo4j】简单使用

【neo4j】简单使用 创建节点 需要建立一个symmap中医数据集的节点&#xff0c;从csv中读取数据 下面是herb的数据 将该文件放在import中 将xlsx文件转换为csv LOAD CSV WITH HEADERS FROM "file:///herb.csv" AS line CREATE (:herb {name:line.Chinese_name,p…

Vue2【插槽】

目录 1&#xff1a;插槽-默认插槽&#xff1a; 2&#xff1a;插槽-具名插槽 &#xff1a; 3&#xff1a;插槽-作用域插槽&#xff1a; 总结&#xff1a;2023再见&#xff0c;2024再见&#xff01;&#xff01;&#xff01; 1&#xff1a;插槽-默认插槽&#xff1a; 作用&a…

工务园IPO上市具有高度投机性质,涉及高风险

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;工务园在其提交给美国证券交易委员会(SEC)的IPO招股书中披露其在纳斯达克IPO上市的股票发行属于【高度投机性质&#xff0c;涉及高风险】&#xff08;这是工务园在其IPO招股书中的原话&#xff09…

Seata AT TM->RC->RM一次完整的交互过程

原理 TM两阶段&#xff1a; 阶段1&#xff1a;TM向TC申请全局事务&#xff0c;netty客户端发起了一次记录xid的请求 阶段2&#xff1a;TC协调之后&#xff0c;决定执行RM是否提交或者回滚。 spring公共组件部分 1、SeataAutoConfiguration类 利用springboot自动装配机制从…

HTML---利用CSS3制作网页动画

文章目录 目录 文章目录 本章目标 一.CSS3概述 CSS函数概述 二.CSS3变形 transform属性 translate()&#xff1a;平移函数 scale()&#xff1a;缩放函数 rotate()&#xff1a;旋转函数 skew()&#xff1a;倾斜函数 三.CSS3过渡 四.CSS动画 练习 旋转按钮 本章目标 会使用…

Spark作业的调度与执行流程

Apache Spark是一个分布式计算框架&#xff0c;用于处理大规模数据。了解Spark作业的调度与执行流程是构建高效分布式应用程序的关键。本文将深入探讨Spark作业的组成部分、调度过程以及执行流程&#xff0c;并提供丰富的示例代码来帮助大家更好地理解这些概念。 Spark作业的组…