算法与数据结构学习9-环形链表及约瑟夫问题

单向环形链表介绍

链表中每个节点的指针域是单向的,指向下一个节点,并且最后一个节点的next指针指向第一个节点,这样就形成了一个闭环,这样的链表结构就是单向循环链表,它可以用于解决约瑟夫问题
在这里插入图片描述

约瑟夫问题

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

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

发布了49 篇原创文章 · 获赞 47 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/mzc_love/article/details/104365454