用带头结点的单向循环链表编写 约瑟夫环 程序 10
要求是带有头结点的单向循环链表,头结点必须在程序当中使用到了,不能将头结点空置着,要用C语言写的。请看清要求,我在网上找了一些都不符合我的要求啊,我刚开始学数据结构不会写...
要求 是 带有头结点的 单向循环链表 ,头结点必须在程序当中使用到了 ,不能将头结点空置着, 要 用 C 语言写的。
请看清要求 ,我在网上找了一些 都不符合 我的要求 啊 ,我刚开始学数据结构 不会写,希望哪位能帮助一下。 急 急 急!!! 展开
请看清要求 ,我在网上找了一些 都不符合 我的要求 啊 ,我刚开始学数据结构 不会写,希望哪位能帮助一下。 急 急 急!!! 展开
1个回答
展开全部
我以前写的 是每5个人去掉一位的约瑟夫环
#include<stdlib.h>
#include<stdio.h>
typedef struct Monkey
{
int num;
struct Monkey *next;
}monkey;
int main()
{
monkey *head,*p,*pt;
int i,n;
puts("enter n");
scanf("%d",&n);
head = p = (monkey*)malloc(sizeof(monkey));
for(i = 1; i < n; i++)
{
pt = (monkey*)malloc(sizeof(monkey));
p->num = i;
p->next = pt;
p = pt;
}
p->num = n;
p->next = head;
p = head;
i = 1;
while(p->next != p)
{
if(i == 5)
{
pt->next = p->next;
printf("number %d exit\n",p->num);
p = pt->next;
i = 1;
}
if(i == 4)
pt = p;
i++;
p = p->next;
}
printf("winner is %d\n",p->num);
return 0;
}
#include<stdlib.h>
#include<stdio.h>
typedef struct Monkey
{
int num;
struct Monkey *next;
}monkey;
int main()
{
monkey *head,*p,*pt;
int i,n;
puts("enter n");
scanf("%d",&n);
head = p = (monkey*)malloc(sizeof(monkey));
for(i = 1; i < n; i++)
{
pt = (monkey*)malloc(sizeof(monkey));
p->num = i;
p->next = pt;
p = pt;
}
p->num = n;
p->next = head;
p = head;
i = 1;
while(p->next != p)
{
if(i == 5)
{
pt->next = p->next;
printf("number %d exit\n",p->num);
p = pt->next;
i = 1;
}
if(i == 4)
pt = p;
i++;
p = p->next;
}
printf("winner is %d\n",p->num);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询