循环列表|约瑟夫问题

本文出自:http://binhua.info/datastructure/%E5%BE%AA%E7%8E%AF%E9%93%BE%E8%A1%A8%E7%BA%A6%E7%91%9F%E5%A4%AB%E7%8E%AF

在单链表或者双链表中,最后一个节点的指针指向头结点就形成了循环列表,这样使链表首尾相连从任意一个节点出发都可以找到其他节点。循环列表的操作和非循环列表差不多就不啰嗦了,只要记住循环链表首尾相连就OK了(好废话。。。)。代码中用循环链表解决了约瑟夫问题。代码鲁棒性不是很强,仅仅用来复习啦。

约瑟夫环:有一队由n个冒险家组成的探险队深入到热带雨林中遭遇到了食人族,食人族的游戏规则是让他们围成一圈,然后选定一个数字k,从第某一个人开始报数,报到k时,这个人就要被吃掉了,然后从下一个人开始又重新从1报数,重复这个过程,直到剩下最后一个人,这个人是幸运者可以离开而不被吃掉。问题是谁是这个幸运者?

完整文章和源代码请点击查看

时间: 2024-10-09 21:21:18

循环列表|约瑟夫问题的相关文章

Cocos2d-x3.0下实现循环列表

本文的实现是參照我之前在做iOS时实现的一个能够循环的列表这里用C++重写一遍. 效果: 原文地址:http://blog.csdn.net/qqmcy/article/details/27393011 用法:能够使用创建project时的HelloWorld測试 ,h文件里加入循环列表的监听回调 void djInfiniteScroll(Ref* sender); .cpp #include "DJInfiniteScrollPicker.h" DJInfiniteScrollPi

微信小程序实现给循环列表点击添加类(单项和多项)

在微信小程序里面没有DOM对象, 不能操作DOM. 所有的操作通过数据来实现,下面主要实现了给循环列表点击添加类的操作 一.单项 目标需求:实现下图,给点击的view增加类,每次只能选择一个. 主要思路:给点击的view增加类,依靠点击的index对state进行赋值.如果相同时,给该view增加类. 实现代码: .wxml文件 1 <view> 2 <view class='appointent-date'> 3 <view class="appointent-d

02uni-app v-for循环列表 v-if的使用

onLoad onShow onHide函数的使用 这三个函数的使用 // 监听页面的加载 参数e是上一个页面传递过来的参数 参数是一个对象 如果没有为空{} onLoad(e) { console.log(e); }, // 监听页面的显示 onShow(e) { console.log("onShow",e); }, // 监听页面的隐藏 当隐藏这个页面的时候,就会触发 onHide(e) { console.log("onHide",e); }, 02===&

列表的使用2,深COPY和浅COPY,循环列表,步长切片

name2=names.copy() 下面我看几种奇怪的现象: 首先把源列表copy以后,把源列表第2个数值修改.那么没毛病. 如果源列表里,还包含了一个子列表:这也没毛病 如果我们这个时候修改子列表的数值.我们来看一个神奇的现象: copy是一种浅COPY,它只会COPY第一层的数据,而不会深入COPY.只会COPY子列表的内存指针,内存地址. 如果你不用COPY的方法,那问题会更严重: 结果是这样的,连浅COPY都不如:相当于只把列表的内存地址复制了一下: 简单来说就是这种情况. 但是如果是

Python循环列表删除元素问题

有人会遇到这种问题,遍历列表,想删除列表中的某几个元素,执行后发现有些并没有删除到, 比如以下代码 a=[1,2,3,4,5,6]print(a) for i in a: if i==3 or i==4: a.remove(i)print(a) 从代码看主要就是想删除a列表中的 3 4 元素, 程序的结果是: [1, 2, 3, 4, 5] [1, 2, 4, 5] 结果不尽人意,原因是我们在遍历的时候 seek走到了3元素的位置 if判断remove 3  这个元素 3这个位置删除后位置空出来

dedecms循环列表样式

简单用法: {dede:arclist typeid="1" row="6"} <li class="list[field:global.autoindex/]">[field:title function="cn_substr(@me,63)"/]</li> {/dede:arclist} 输出类似于 <li class="list1">1</li> <

Py徐少攻关之数据类型初始 循环 列表初讲(5)

pycharm使用 集成开发环境(IDE,Integrated Development Environment )    VIM #经典的linux下的文本编辑器    Emacs #linux 文本编辑器, 比vim更容易使用    Eclipse # Java IDE,支持python, c ,c++    Visual Studio # 微软开发的 IDE, python,c++,java,C#    notepad++ ,    sublime python开发的    Pycharm

jQuery取得循环列表的第一列值

有如下的表格: <table class="list_tab" id="personalDetail"> <tr class="head"> <th>体检编号</th> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>个人状态</th> <th>单位名称<

django模板解析 循环列表中 切片和求长度

{% for subrow in subdic.content|slice:":5" %} {% endfor %} {% if "{{subdic.content|length}}" > 5 %} {% endif %} 如上,关键在于 循环中,里面的列表外面没有双引号 而if中,列表外面有双引号 网上很多文章太坑..