项目-约瑟夫双向生死游戏

本文详细介绍了约瑟夫双向生死游戏的问题背景,通过分析和编程实现,揭示了问题的解决思路和算法核心,帮助读者理解并掌握该问题的解决方法。
摘要由CSDN通过智能技术生成

问题描述及代码:

/*现有N位旅客同乘一条船,遇到风暴只有k名乘客可以幸存,无奈大家只能进行生死游戏,
N位旅客围城一圈,从第S个人开始依次报数,顺时针报M的人出局,再由下一个人开始报
数,逆时针数到第W人出局。在从他逆时针的下一个人数起,顺时针数M人.如此循环,直
到剩下K个乘客为止*/

1.cpp:

#include<iostream>
#include"1.h"
using namespace std;
/*******************
Node类的构造函数,初始化结点数据
********************/
Node::Node()
{
	data=0;
	prior=NULL;
	next=NULL;
}
/**************
Linklist类的构造函数,初始化首节点数据
*****************/
Doublelist::Doublelist()
{
	Head=NULL;
}
/*********************
建立双向循环链表
************************/
void Doublelist::Creatlist(Doublelist &L)
{
	cout<<"请输入双向生死游戏的总人数N:";
	int n;
	cin>>n;
	Node *p,*s;
	for(int i=1;i<=n;i++)
	{
		p=new Node;
		p->data=i;
		p->next=NULL;
		if(i==1)
		{
			L.Head=p;
			p->prior
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值