欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

约瑟夫循环问题

程序员文章站 2024-03-21 19:46:46
...
#include <iostream>
#include <stdlib.h>
using namespace std;

typedef struct LNode
{
	int data;
	struct LNode *next;
}LNode, *LinkList;

int josephu(int m, int n)
{
	LinkList p, curr;
	p = (LinkList)malloc(sizeof(LNode));
	p->data = 1;
	p->next = p;
	curr = p;

	for(int i = 1;i < n; i++)
	{
	    LinkList tmp = (LinkList)malloc(sizeof(LNode));
		tmp->data = i + 1;
		tmp->next = curr->next;
		curr->next = tmp;
		curr = tmp;
	}
	while(n--)
	{
		LinkList tmp;
		for (int s=m-1;s--;tmp=p,p=p->next);
		tmp->next=p->next;
		cout<<p->data<<"->";
		free(p);
		p=tmp->next;
	}
	return 0;
}

int main()
{
	josephu(4,17);
	return 0;
}

参考链接:

http://www.voidcn.com/article/p-axekcpuy-tq.html

https://segmentfault.com/a/1190000015932138

相关标签: 循环链表