(3.2)--第2章 线性表-9-拓展【约瑟夫环问题】.pdfVIP

  • 2
  • 0
  • 约3.86千字
  • 约 7页
  • 2024-03-15 发布于广东
  • 举报

(3.2)--第2章 线性表-9-拓展【约瑟夫环问题】.pdf

线性表之循环链表实现约瑟夫环

今天我们来学习利用循环链表,解决经典的约瑟夫环问题。题意是:已知n个

人(分别用编号1,2,3,…,n表示)围坐在一张圆桌周围,从编号为k的

人开始顺时针报数,数到m的那个人出列;他的下一个人又从1开始,还是

顺时针开始报数,数到m的那个人又出列;依次重复下去,直到圆桌上剩余一

个人。如图1所示,假设此时圆桌周围有5个人,要求从编号为3的人开始

顺时针报数,数到2的那个人出列:

1

图循环链表实现约瑟夫环

根据以上游戏规则,出列顺序依次为:

编号为3的人开始数1,然后4数2,所以4先出列;

4出列后,从5开始数1,1数2,所以1出列;

1出列后,从2开始数1,3数2,所以3出列;

3出列后,从5开始数1,2数2,所以2出列;

最后只剩下5自己,所以5胜出。

约瑟夫环问题有多种变形,比如顺时针报数改为逆时针报数(常用单循环链表实

现),亦或顺时针报数与逆时针报数

文档评论(0)

1亿VIP精品文档

相关文档