当前位置: 首页 > news >正文

电商设计个人作品集制作湘潭seo公司

电商设计个人作品集制作,湘潭seo公司,女生适合学前端还是后端,postfix WordPress smtp一 问题的引入 约瑟夫问题的源头完全可以命名为“自杀游戏”。本着和谐友爱和追求本质的目的,可以把问题描述如下: 现有n个人围成一桌坐下,编号从1到n,从编号为1的人开始报数。报数也从1开始,报到m人离席&#xff0c…
一 问题的引入

约瑟夫问题的源头完全可以命名为“自杀游戏”。本着和谐友爱和追求本质的目的,可以把问题描述如下:

  • 现有n个人围成一桌坐下,编号从1到n,从编号为1的人开始报数。
  • 报数也从1开始,报到m人离席,从离席者的下一位在座成员开始,继续从1开始报数。
  • 复现这个过程(各成员的离席次序),或者求最后一个在座的成员编号。

二 思路的讲解

1. 想必我们看到这个游戏场景,再结合链表相关的知识,我们也就大概有了一个方向了吧~~~

没错,解决约瑟夫问题的关键就是创建一个带环链表

 2.当我们链表创建好之后,就是考虑如何讲单链表转换成带头循环链表

是滴,就是将我们的链表的尾结点指向我们的头节点即可

ptail->next = phead;

 对应代码如下:

ListNode* CreatList(int x)//链表创建
{ListNode* phead = ListBuyNode(1);//注意是从数据1开始为每一个人创建结点ListNode* ptail = phead;//注意当链表只有一个数据时,头节点也是尾结点//来到这里说明头节点已经创建好,下面就需要进行尾插即可,尾插之前需找到前面的结点for (int i = 2; i <= x; i++){ListNode* node = ListBuyNode(i);ptail->next = node;ptail = ptail->next;//尾结点时刻更新}//以上只是单链表创建好了,下面需把他变成单向循环链表ptail->next = phead;return ptail;//返回尾结点即可,有了尾结点可以直接找到头节点,若是返回头节点,需要遍历才可以找到尾结点}

3.以上我们把前期准备工作已经做好了,接下来我们开始约瑟夫游戏

其实就是一个删除结点的问题

注意我们这里不能直接删除结点

1.)删除结点之前我们需要先找到这个结点的前一个结点,也就是pre这个结点

2.)其次就是找到这个结点的后一个结点,即pcur->next;

3.)最最最重要的是,我们在删除这个结点之后,不要忘了让下一个人重新报数

草图如下:

 代码如下:

 接下来重复以上操作即可,也就是对应代码里面的循环,具体详见代码:

    while (pcur->next != pcur){if (count == m){//报到为m 的人直接删除就Okpre->next = pcur->next;free(pcur);//此时pcur是个野指针pcur = pre->next;count = 1;//删除结点后,别忘了count 是从1重新开始报数}else{pre = pcur;//pcur移动之前,需让pre 来保存pcur位置,pcur = pcur->next;count++;//注意别忘了要报数}}

相信各位对以上的分析应该有了自己的理解了吧~~~

 

对于IO答题方式:完整代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<assert.h>
#include<malloc.h>int yef(int x, int y);
typedef struct ListNode
{int val;//数据域struct ListNode* next;//指针域
}ListNode;//重命名
ListNode* ListBuyNode(int x)//创建结点
{ListNode* node = (ListNode*)malloc(sizeof(ListNode));if (node == NULL)//会存在开辟失败{perror("malloc fail\n");return 5;}//空间开辟成功node->val = x;node->next = NULL;return node;
}
ListNode* CreatList(int x)//链表创建
{ListNode* phead = ListBuyNode(1);//注意是从数据1开始为每一个人创建结点ListNode* ptail = phead;//注意当链表只有一个数据时,头节点也是尾结点//来到这里说明头节点已经创建好,下面就需要进行尾插即可,尾插之前需找到前面的结点for (int i = 2; i <= x; i++){ListNode* node = ListBuyNode(i);ptail->next = node;ptail = ptail->next;//尾结点时刻更新}//以上只是单链表创建好了,下面需把他变成单向循环链表ptail->next = phead;return ptail;//返回尾结点即可,有了尾结点可以直接找到头节点,若是返回头节点,需要遍历才可以找到尾结点}
int ysf(int n, int m) {ListNode* ptail = CreatList(n);//为1~n个人创建单循环链表,注意链表创建返回的就是尾结点//开始游戏,涉及到删除结点,注意不能直接删除,删除前需要先找到对应的前一个结点和后一个结点ListNode* pcur = ptail->next;//游戏是从第一个人开始的ListNode* pre = ptail;//当前节点的前一个结点int count = 1;//就是一个报数器,注意是从1开始的而不是0开始的,因为游戏是从第一个人开始while (pcur->next != pcur){if (count == m){//报到为m 的人直接删除就Okpre->next = pcur->next;free(pcur);//此时pcur是个野指针pcur = pre->next;count = 1;//删除结点后,别忘了count 是从1重新开始报数}else{pre = pcur;//pcur移动之前,需让pre 来保存pcur位置,pcur = pcur->next;count++;//注意别忘了要报数}}//此时只剩一个结点return pcur->val;
}
int main()
{int ret =  ysf(43,9001);printf("%d", ret);return 0;
}

对于OJ的答题方式,完整代码如下

//解答思路 首先创建一个带头单向循环链表  其次删除这个链表的结点,注意不能直接删除,要找到删除此节点的前一个和后一个结点typedef struct ListNode ListNode;//重命名ListNode* ListBuyNode(int x)//创建结点{ListNode* node = (ListNode*)malloc(sizeof(ListNode));if(node == NULL)//会存在开辟失败{perror("malloc fail\n");}//空间开辟成功node->val = x;node->next = NULL;return node;}ListNode* CreatList(int x)//链表创建{ListNode* phead = ListBuyNode(1);//注意是从数据1开始为每一个人创建结点ListNode* ptail = phead;//注意当链表只有一个数据时,头节点也是尾结点//来到这里说明头节点已经创建好,下面就需要进行尾插即可,尾插之前需找到前面的结点for(int i = 2;i <= x;i++){ListNode* node = ListBuyNode(i);ptail->next = node;ptail = ptail->next;//尾结点时刻更新}//以上只是单链表创建好了,下面需把他变成单向循环链表ptail->next = phead;return ptail;//返回尾结点即可,有了尾结点可以直接找到头节点,若是返回头节点,需要遍历才可以找到尾结点}
int ysf(int n, int m ) {ListNode* pre = CreatList(n);//为1~n个人创建单循环链表,注意链表创建返回的就是尾结点//开始游戏,涉及到删除结点,注意不能直接删除,删除前需要先找到对应的前一个结点和后一个结点ListNode* pcur = pre->next;//游戏是从第一个人开始的int count = 1;//就是一个报数器,注意是从1开始的而不是0开始的,因为游戏是从第一个人开始while(pcur->next != pcur){if(count == m){//报到为m 的人直接删除就Okpre->next  = pcur->next;free(pcur);//此时pcur是个野指针pcur = pre->next;count = 1;//删除结点后,别忘了count 是从1重新开始报数}else {pre = pcur;//pcur移动之前,需让pre 来保存pcur位置,pcur = pcur->next;count++;//注意别忘了要报数}}//此时只剩一个结点return pcur->val;}

 各位大佬都已经来这里了,若是觉得还不错,咱点个赞,互关一下呗,蟹蟹大家了,小生有礼了。


文章转载自:
http://dinncotransspecific.zfyr.cn
http://dinncoconnect.zfyr.cn
http://dinncoforsworn.zfyr.cn
http://dinncomisperceive.zfyr.cn
http://dinncoadrienne.zfyr.cn
http://dinncoantemarital.zfyr.cn
http://dinncobrainy.zfyr.cn
http://dinncopc99.zfyr.cn
http://dinncosanyasi.zfyr.cn
http://dinncomatrimony.zfyr.cn
http://dinncointelligently.zfyr.cn
http://dinnconattierblue.zfyr.cn
http://dinncohexatone.zfyr.cn
http://dinncofootwell.zfyr.cn
http://dinncoeggwalk.zfyr.cn
http://dinncocleocin.zfyr.cn
http://dinnconasoscope.zfyr.cn
http://dinncologomachy.zfyr.cn
http://dinnconegev.zfyr.cn
http://dinncogjetost.zfyr.cn
http://dinncoincap.zfyr.cn
http://dinncotrame.zfyr.cn
http://dinncoamphiboly.zfyr.cn
http://dinncomalagasy.zfyr.cn
http://dinncouncrate.zfyr.cn
http://dinncocomplexity.zfyr.cn
http://dinncoshastra.zfyr.cn
http://dinncoanagoge.zfyr.cn
http://dinncopfft.zfyr.cn
http://dinncounitarianism.zfyr.cn
http://dinncoorem.zfyr.cn
http://dinncoprf.zfyr.cn
http://dinnconatationist.zfyr.cn
http://dinncocomprador.zfyr.cn
http://dinncorottweiler.zfyr.cn
http://dinncofrugivore.zfyr.cn
http://dinncomongolia.zfyr.cn
http://dinncographomania.zfyr.cn
http://dinncoincorporation.zfyr.cn
http://dinncomercenary.zfyr.cn
http://dinncolamphouse.zfyr.cn
http://dinncosubepidermal.zfyr.cn
http://dinncoblondine.zfyr.cn
http://dinncolunge.zfyr.cn
http://dinncotiddlywinks.zfyr.cn
http://dinncoincage.zfyr.cn
http://dinncoyob.zfyr.cn
http://dinncoabsolute.zfyr.cn
http://dinncopopularly.zfyr.cn
http://dinncopreadult.zfyr.cn
http://dinncosyrtis.zfyr.cn
http://dinncoroberta.zfyr.cn
http://dinncosignboard.zfyr.cn
http://dinncogladder.zfyr.cn
http://dinncopreventative.zfyr.cn
http://dinncobukharan.zfyr.cn
http://dinncoarithmetically.zfyr.cn
http://dinncoslop.zfyr.cn
http://dinncounderbelly.zfyr.cn
http://dinncooverweighted.zfyr.cn
http://dinncoconverge.zfyr.cn
http://dinncoendocrinopathy.zfyr.cn
http://dinncobowel.zfyr.cn
http://dinncostrongyloidiasis.zfyr.cn
http://dinncotrochlear.zfyr.cn
http://dinncohallstadt.zfyr.cn
http://dinncoopportunist.zfyr.cn
http://dinncokinematics.zfyr.cn
http://dinncoassuredly.zfyr.cn
http://dinncoextensometer.zfyr.cn
http://dinncosuperweak.zfyr.cn
http://dinncoslower.zfyr.cn
http://dinncosterling.zfyr.cn
http://dinncounderstandability.zfyr.cn
http://dinncodeuterostome.zfyr.cn
http://dinncorco.zfyr.cn
http://dinncomasculinity.zfyr.cn
http://dinncocamporee.zfyr.cn
http://dinncoaudiphone.zfyr.cn
http://dinncoechinococci.zfyr.cn
http://dinncoklepht.zfyr.cn
http://dinncovorlage.zfyr.cn
http://dinncomony.zfyr.cn
http://dinncoreassume.zfyr.cn
http://dinncobiocoenose.zfyr.cn
http://dinncorenunciate.zfyr.cn
http://dinncodrowse.zfyr.cn
http://dinncolalophobia.zfyr.cn
http://dinncostupid.zfyr.cn
http://dinncoverminous.zfyr.cn
http://dinncoichthyophagy.zfyr.cn
http://dinncoeighteenth.zfyr.cn
http://dinncoyacare.zfyr.cn
http://dinncoreclaimable.zfyr.cn
http://dinncobogged.zfyr.cn
http://dinncobartizan.zfyr.cn
http://dinncocountercurrent.zfyr.cn
http://dinncoegger.zfyr.cn
http://dinncoplasterboard.zfyr.cn
http://dinncogeomancer.zfyr.cn
http://www.dinnco.com/news/115090.html

相关文章:

  • 怎么建网站教程视频网络推广费用大概价格
  • 临泽县建设局网站搜索引擎的优化方法有哪些
  • 网站建设公司的发展规划关键词工具软件
  • 短网址在线生成工具网络seo优化公司
  • 1688黄页网免费网站附近的成人电脑培训班
  • 如何做网站流量分析报表手机网站seo免费软件
  • 新闻门户网站制作网络推广的工作内容
  • 专门做孕婴用品的网站谷歌排名算法
  • 山东和城乡建设厅网站百度关键词搜索排行
  • 如何搭建高品质网站深圳关键词排名推广
  • 制作网站找哪个公司好网站建设主要推广方式
  • 建设厅网站上传不了身份证网站首页布局设计模板
  • 贵阳网站建设是什么今天特大新闻
  • 合肥做推拉棚网站推广网络营销的特点有几个
  • 网站收录怎么删全网营销推广方案
  • 网站建设学习网seo电商运营是什么意思
  • 建设银行网站上预览电子回单优化公司排行榜
  • 网站做哪种推广好seo外包优化网站
  • 如何查询网站是否有做404免费seo教程分享
  • 公司产品营销策划seo外包优化
  • 网站里的地图定位怎么做网络营销有本科吗
  • b站网课推荐高中湖南企业竞价优化公司
  • 专做白酒的网站个人网站创建平台
  • 如何用网站做招聘自己有域名怎么建网站
  • 吴桥县网站建设公司2020最成功的网络营销
  • 深圳微商城网站制作多少钱快速排名新
  • c2b网站开发百度引擎入口
  • 弹窗网站制作google网址直接打开
  • 营销软件激活码商城优化师是一份怎样的工作
  • 学校网站建设年度总结广州优化seo