数据结构中用单向循环链表模拟约瑟夫环?

 我来答
蔷薇木人
2012-04-04 · TA获得超过137个赞
知道答主
回答量:23
采纳率:0%
帮助的人:29万
展开全部
共有三种解法:我先给你一个同密码,循环链表写的吧!
欢迎采纳并追问!
#include <stdio.h>
#include <stdlib.h>
int linktype(int n,int m) //链表结构
{
int people,passord;
struct node
{
int data;
struct node *next;
}NODE;
node *p,*head,*q,*pri;
head=(node *)malloc(sizeof(struct node));//创建一个空表
head->next=NULL;
head->data=1;
q=head;
for(int i=2;i<=n;i++)
{
p=(node *)malloc(sizeof(struct node));//让系统分配一块新的内存
p->data=i;
p->next=NULL;
q->next=p;
q=q->next;
}
q->next=head;//建立循环链表
pri=q;p=head;//从head开始循环
people=0;passord=1;//出去了几个人、记录的密码数
while(people<n)
{
pri=pri->next;
p=p->next;
passord++;
if(passord==m)
{
printf("%-4d",p->data);
node *temp;
temp=p;
pri->next=p->next;
p=p->next;
free(temp);
people++;passord=1;
}
}
printf("\n");
return 0;
}
int main()
{
int n,m;
printf("请输入人数和密码");
while(scanf("%d%d",&n,&m)!=EOF)
{
if(m<0||n<0)
{
printf("输入错误,请重新输入\n");
continue;
}
linktype(n,m);
}
system("pause");
return 0;
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
之羊清0C
2012-04-06 · TA获得超过112个赞
知道答主
回答量:56
采纳率:0%
帮助的人:40.1万
展开全部
#include <iostream.h>
#include"stdio.h"
struct node{
int data;//数据
node *next;//指向下一个结点
};

void main()
{
int m,n;
node *p=new node;
node *h=new node;
cout<<"Input M,N :"<<endl;
cin>>m>>n;

p->data=1;
p->next=p;
h=p;

if(n>1){
for(int i=2;i<=n;i++)
{
node *q=new node;
q->data=i;
p->next=q;
p=q;
}
}
else
cout<<p->data<<endl;

p->next=h;

//输出
p=h;
while(p->next!=p)
{
for(int i=1;i<m-1;i++)
p=p->next;
node *s=p->next;
p->next=p->next->next;
cout<<s->data<<" ";
p=s->next;
delete s;

}
cout<<p->data<<endl;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式