⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 约瑟夫环(函数版).cpp

📁 关于数据结构的一个算法问题
💻 CPP
字号:
#include"stdio.h"
typedef struct LNode{
	int Num,Code;
	struct LNode *next;
	}LNode,*LinkList;				//定义节点结构
void Initlist(LinkList &L, int &n, int &m);
void Outlist(LinkList,int,int);
void Initlist(LinkList &L, int &n, int &m)			//数据初始化
{
	LinkList p,s;
	int num,password;
	printf("请输入人的数目:");
	scanf("%d",&n);
	printf("请输入m的初始值:");
	scanf("%d",&m);
	L=new LNode;
	p=L;
	for(num=1;num<=n;num++)				//循环单链表初始化
	{     
		s=new LNode;
		printf("请输入第%d个人的密码:",num);
		scanf("%d",&password);
		s->Code=password; 			//密码初始化
		s->Num=num;				//编号初始化
		p->next=s;
		p=s;
	}	
	p->next=L->next;
	p=L;
	L=L->next;
}
void Outlist(LinkList L,int n,int m)				//出列顺序
{	
	LinkList s,q; 
	int i,j;
	s=L;
	for(i=1;i<=n;i++)
	{ 
		for(j=1;j!=m;j++)s=s->next;		//按m的值顺序报数
		for(q=s;q->next!=s;q=q->next);		//将当前指针移至前一节点
		printf("第%d个出队为%d号\n",i,s->Num);
		m=s->Code;				//将密码Node值传给m
		q->next=s->next;
		s=q->next;
	}
}
void main()
{ 
	LinkList L;
	int n,m;
	Initlist(L,n,m);
	Outlist(L,n,m);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -