利用循环链表实现约瑟夫问题的求解

本文介绍如何利用循环链表实现约瑟夫问题的解决方案,详细阐述了程序设计思路,通过程序代码(包括头文件joseph.h和主程序joseph.cpp)演示了如何按顺序输出出列人的编号,直至所有人均出列。
摘要由CSDN通过智能技术生成

利用循环链表实现约瑟夫问题的求解

本实验利用循环链表实现约瑟夫问题的求解,通过该程序能够按先后次序输出每一次出列人的编号,从而得出结论

约瑟夫(Joseph)问题如下:

已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的编号。

我们将采用循环链表的方式进行求解。

具体代码如下

头文件:joseph.h

//joseph.h

#ifndef  JOSEPH_H

struct Node
{
   
	int Date;
	Node* next;
};
class Joseph
{
   
	Node* first;
	Node* rear;
	int n;
	int m;
public:
	Joseph();
	~Joseph();
	void max();
	int getmax();
	int getn();
	void method();
};

#endif

主程序:joseph.cpp

//joseph.cpp

#include 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值