欢迎光临散文网 会员登陆 & 注册

4.5-4.8单向环形链表和约瑟夫问题

2021-12-05 16:13 作者:取悦疾风  | 我要投稿

题目来自 尚硅谷Java数据结构与java算法(Java数据结构与算法)_哔哩哔哩_bilibili


写在前面:本文内容大致和原视频内老师的笔记内容相同,会偶尔插入自己的注释和理解,尽量会完成作业

4.5单向环形链表应用场景

Josephu (约瑟夫,约瑟夫环) 问题

Josephu问题为:设编号为1,2…n的n个人围坐一圈,约定编号为k ( 1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。

提示:用一个不带头结点的循环链表来处理Josephu问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中删除算法结束。


4.6单项环形链表介绍


4.7Josephu问题

约瑟夫问题的示意图(使用单项环形链表完成)


Josephu问题

Josephu问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。

提示

用一个不带头结点的循环链表来处理Josephu问题:先构成一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点从链表中删除,然后再从被删除结点的下一个结点又从1开始计数,直到最后一个结点从链表中删除算法结束。

约瑟夫问题-创建环形链表的思路图解


约瑟夫问题-小孩出圈的思路分析图


4.8约瑟夫问题的代码实现

写给今后忘记这题的我:那么你回想起来了吗?

4.5-4.8单向环形链表和约瑟夫问题的评论 (共 条)

分享到微博请遵守国家法律