约瑟夫环问题——数据结构p76页(耿国华主编)

约瑟夫环问题


题目: 约瑟夫问题的一种描述是:编号为1,2,……,n的n个人按顺序顺时针方向围坐一圈,每人持有一个密码(正整数)。开始时任选一个整数作为报数上限m,从第一个人开始顺时针自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直到所有的人全部出列为止。

例如,m的初值为20;n=7,7个人的密码依次是3,1,7,2,4,8,4,出列的顺序为6,1,4,7,2,3,5

题目比较简单,这里就不做解释啦,代码中有部分注释,直接上代码

c代码如下:

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>typedef struct Node {int data;int index;struct Node* next;
}NODE,*PNODE;//初始化链表
PNODE init_list(int);
//遍历链表
void tarveral_list(PNODE,int);
//解决约瑟夫问题
void yuesefu_list(PNODE,int);int main(void) {//len链表长度,即人员个数,用户输入;int len;printf_s("请输入人的个数 n = ");scanf_s("%d", &len);PNODE pHead = NULL;pHead = init_list(len);tarveral_list(pHead,len);yuesefu_list(pHead,len);return 0;
}PNODE init_list(int len) {// val每个人持有的密码,用户输入;int i,val;PNODE pHead = (PNODE)malloc(sizeof(NODE));//定义一个头节点PNODE pTail;//定义一个尾结点pTail = pHead;pTail->next = NULL;if (pHead == NULL) {printf_s("内存分配失败,程序退出");exit(-1);}for (i = 0; i < len; i++) {PNODE pNew = (PNODE)malloc(sizeof(NODE));if (pNew == NULL) {printf_s("内存分配失败,程序退出");exit(-1);}printf("请输入第%d个人的密码:", i + 1);scanf_s("%d",&val);//尾插法pNew->index = i + 1;pNew->data = val;pTail->next = pNew;pNew->next = NULL;pTail = pNew;}pTail->next = pHead->next;printf_s("\n");return pHead;
}void tarveral_list(PNODE pHead,int len) {int i;PNODE p = pHead->next;printf_s("您输入的每个人的密码依次是:\n");for (i = 0; i < len; i++) {printf_s("%d\t", p->data);p = p->next;}printf_s("\n");return;
}void yuesefu_list(PNODE pHead,int len) {int m,n;int i;PNODE p = pHead;//r用来指向p指向的上一个结点PNODE r = NULL;printf_s("请输入初始m值,m = ");scanf_s("%d",&m);//当p指向自己的时候证明循环单链表只剩一个结点,退出循环,然后再最后把这一个结点的序号输出while (p->next != p) {for (i = 0; i < m; i++) {//让r指向要出列结点的上一个结点r = p;p = p->next;}//输出p指向结点的序号,然后把p的data赋给m;删除p指向结点,p指向p指向的上一个结点;printf_s("%d   ", p->index);m = p->data;r->next = p->next;p = r;};printf("%d",p->index);
}

运行结果:
在这里插入图片描述

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

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

相关文章

数据结构用c语言描述第二版高等教育出版社,耿国华《数据结构-C语言描述(第2版)》,高等教育出版社...

《数据结构用C语言描述(第2版)》根据教育部计算机类专业教学指导委员会制定的“数据结构与算法”课程大纲和《全国硕士研究生入学统一考试计算机专业基础综合考试大纲》的要求而编写,跟踪技术发展需要,教材体系科学,内容简洁实用。《数据结构用C语言描述(第2版)》共10章。内…

oracle xe gentoo,Oracle在gentoo下安装

补充: 解决ORACLE10G安装界面中文乱码问题&#xff0c;修改以下变量使安装界面为英文。 export LC_CTYPEen_US.UTF-8 以下为原文 1.OS:Gentoo-linux-2.6.23-rc5 Oracle:Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86 下载地址&#xff1a; 2.使用管理员账户建立Or…

童国华正式执掌大唐电信集团

近日&#xff0c;国资委在其官方网站发布公告&#xff0c;对电信科学技术研究院&#xff08;也就是业内熟知的“大唐电信科技产业集团”&#xff09;进行了人事任免。 经研究&#xff0c;任命童国华为电信科学技术研究院党组院长&#xff0c;免去真才基的电信科学技术研究院院长…

计算机导论与c语言耿国华pdf,计算机导论与C语言

计算机导论与C语言 耿国华 电子工业出版社 出版时间&#xff1a; 2005-9 出版社&#xff1a; 电子工业出版社 作者&#xff1a; 耿国华 Tag标签&#xff1a; 无 内容概要 全书共16章&#xff0c;内容分为两大部分。第一部分为计算机导论部分&#xff0c;包括计算机的基本概念、…

数据结构-用C语言描述耿国华版总结笔记(上篇)

数据结构-----用C语言描述 两年前的考研笔记了&#xff0c;再回首&#xff0c;不忍唏嘘&#xff0c;时间过得真快。 下篇&#xff1a;https://blog.csdn.net/weixin_38244174/article/details/90707831 第一章绪论 &#xff08;1&#xff09;数据结构&#xff1a;相…

数据结构 耿国华 第三版

前言&#xff1a;本人在各大网站都查过答案&#xff0c;但是答案版本和第三版都不一样&#xff0c;只是有个别大题重复&#xff0c;在以下整理的答案为自己所做&#xff0c;如有不对之处&#xff0c;不承担任何后果。 第三章 B 考察队列的应用C C C 取一个n和i 自己试试就行了…

数据结构-用C语言描述耿国华版总结笔记(下篇)

第六章 树与二叉树 &#xff08;一&#xff09;二叉树 1.1树相关术语&#xff1a; 度&#xff08;一个结点的子树个数&#xff09;&#xff1b;结点的层次&#xff08;从该结点开始往下有多少层&#xff09;&#xff1b;树的度&#xff08;树中所有结点的度的最大值&a…

c语言程序设计答案 耿国华,数据结构---C语言描述-(耿国华)-课后习题答案

数据结构---C语言描述-(耿国华)-课后习题答案 第一章 习题答案2、√3、 (1)包含改变量定义的最小范围(2)数据抽象、信息隐蔽(3)数据对象、对象间的关系、一组处理数据的操作(4)指针类型(5)集合结构、线性结构、树形结构、图状结构(6)顺序存储、非顺序存储(7)一对一、一对多、多…

数据结构c语言描述耿国华,数据结构c语言描述耿国华习题及答案

数据结构c语言描述耿国华习题及答案 第一章 习题答案 2、 √ 3、 (1 )包含改变量定义的最小范围(2)数据抽象、信息隐蔽(3 )数据对象、对象间的关系、一组处理数据的操作(4 )指针类型(5 )集合结构、线性结构、树形结构、图状结构(6 )顺序存储、非顺序存储(7 )一对一、一对多、多…

《人人都能玩赚ChatGPT》:一份简明易懂的ChatGPT技术指南

在科技日新月异的时代&#xff0c;人工智能无疑成为了当之无愧的热点话题。对于许多对前沿技术感兴趣的人来说&#xff0c;掌握聊天机器人技术似乎是一个遥不可及的梦想。然而&#xff0c;一本名为《人人都能玩赚ChatGPT》的书籍正在改变这一现状。本书由黄小刀和刘楚宾两位老师…

手把手教你向国际知名翻译公司Transperfect投递简历

手把手教你向国际知名翻译公司Transperfect投递简历 之前已经跟大家聊过为什么要向国外翻译公司投递简历&#xff0c;其实核心就一点&#xff0c;就是想要真正翻倍儿地提高单价收入&#xff0c;只能往国外走一走。 那么现在我们以Transperfect为例介绍下如何操作&#xff0c;其…

3名离职员工窃取公司源码,半年狂赚 1.5 亿元;苹果成全球首家市值超 3 万亿美元公司;《孤岛惊魂》源码被公开|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

野心藏住不住了!OpenAI或在悄悄聘请国际承包商,以培训其软件工程方面的人工智能。

OpenAI或在悄悄聘请国际承包商&#xff0c;以培训其软件工程方面的人工智能。本文将通过一场针对敏捷专家职位的ChatGPT工作面试指导中抽取的七个问题揭晓ChatGPT的真实水平。 外媒Semafor的一份报告显示&#xff0c;OpenAI已悄悄聘请了数百名国际承包商&#xff0c;以培训其…

替家长向ChatGPT问了10个问题,个个问到了心坎上!

长江日报 多地中小学校陆续开学 孩子们重返校园 不少家长表示&#xff1a; 有期待、有烦扰、有开心…… 有些家长开玩笑地问道&#xff1a; 孩子开学了 作为家长&#xff0c;我该如何为自己庆祝一下&#xff1f; 新学期&#xff0c;想让孩子考进班里前三 有什么诀窍吗&#xff…

全新创富机遇来临,ChatGPT将带来3大赚钱方向,未来20年都是趋势

ChatGPT绝不是一个单纯的聊天软件&#xff0c;它的出现即将改变世界&#xff0c;未来20年将带来3大创富方向。 1、乔布斯与ChatGPT的关系 2、GPT智能化商业时代来临 3、每个普通人都能做的项目 一 ChatGPT到底是什么&#xff1f;在大多数人的认知里都觉得它是一个智能聊天软…

收藏,码住《70款ChatGPT插件评测:惊艳的开发过程与宏大的商业化愿景》

《70款ChatGPT插件评测&#xff1a;惊艳的开发过程与宏大的商业化愿景》 对ChatGPT的插件商店中总共70款插件进行了评测。区别于Chrome&#xff0c;AppStore等平台的代码开发范式&#xff0c;开发者仅使用自然语言就可以开发ChatGPT插件&#xff0c;并由GPT模型自行决定在使用…

2023年回顾与计划

时光转瞬即逝&#xff0c;2022年即将过去&#xff0c;又到了年底的时刻&#xff0c;也该好好的总结自己一年来的点滴以及对新的一年的展望了。 每步走过的路都是你成长的见证&#xff0c;且行且珍惜&#xff01; 2022年总结 记得在2022年初&#xff0c;我给自己立了很多的 fla…

简述三观;

文章目录 三观世界观人生观价值观三观不合怎么看三观不正: 教养育儿教育心智不成熟的表现 三观 指人生观&#xff0c;世界观和价值观; https://wenku.baidu.com/view/102a655fd4bbfd0a79563c1ec5da50e2534dd1d8.html?fraladdin664466&ind1&_wkts_1685949448098&…

科大讯飞交卷,实测星火大模型

作者 | 辰纹 来源 | 洞见新研社 星星之火&#xff0c;可以燎原。 5月6日&#xff0c;讯飞星火认知大模型揭开神秘面纱。 发布会上&#xff0c;科大讯飞董事长刘庆峰、研究院院长刘聪现场实测了星火大模型七大核心能力&#xff0c;并发布基于该大模型的教育、办公、汽车和数字…

直连Colab,支持20种编程语言:谷歌版ChatGPT代码水平反杀了?

视学算法报道 编辑&#xff1a;泽南、小舟 Bard 现在可以生成代码、Debug、并帮你解释代码。 虽然过去十几年里一直引领全球 AI 进步&#xff0c;谷歌在过去的几个月却只能努力追赶微软和 OpenAI 的步伐&#xff0c;为此这个星期甚至还把谷歌大脑和 DeepMind 合并到了一起。 去…