栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构之SWUSTOJ956: 约瑟夫问题的实现

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构之SWUSTOJ956: 约瑟夫问题的实现

题目:

 代码:
 

#include
using namespace std;
typedef struct SList
{
	int data;
	struct SList* next;
}SL;
void SLInit(SL** ps)
{
	*ps = (SL*)malloc(sizeof(SL));
	(*ps)->next = NULL;
}//开辟头结点
void SLCreate(SL** ps,int n)
{
	SL* head = *ps;
	SL* cur = *ps;
	for (int i = 1; i <= n; i++)
	{
		SL *newnode = (SL*)malloc(sizeof(SL));
		newnode->data = i;
		cur->next = newnode;
		cur = newnode;
	}
	cur->next = head->next;//构成循环链表
}
int main()
{
	SL* q = NULL;
	SLInit(&q);
	int n = 0;
	cin >> n;
	SLCreate(&q, n);
	int k = 0;
	cin >> k;
	while (n != 1)//从1开始循环直到n结束
	{
		int i = 1;//从1开始循环直到k结束
		while (i != k)
		{
			q = q->next;
			i++;
		}
		q->next = q->next->next;//将第k个元素出队列
		n--;
	}
	printf("%d", q->data);//打印最后一个剩下的数据
	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832632.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号