求程序!!!!!!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:14:35
我们的<<数据结构>>上机实验 (用C语言编写)

实验要求:
1. 掌握线性表的基本操作算法
2. 掌握约瑟夫环的基本模型过程
3. 能以程序方式实现约瑟夫环的问题
4. 调试成功,并保存程序源代码,以备检查
实验内容:
1. 完成一个约瑟夫问题的通用算法
2. 设计--将该算法以程序实现
1) 可以以链表实现,也可以以数组实现
2) 已知条件可自行定义(可以将程序定义为20个人的圈子中,报数为3的人退出,也可以完成一个通用的程序)

#include<stdio.h>
typedef struct node
{int num;
struct node *next;
}linklist;
linklist *creat(head,n)
linklist *head;
int n;
{linklist *s,*p;
int i;
s=(linklist *)malloc(sizeof(linklist));
head=s;
s->num=1;
p=s;
for(i=2;i<=n;i++)
{s=(linklist *)malloc(sizeof(linklist));
s->num=i;
p->next=s;
p=s;
}
p->next=head;
return head;
}
linklist *select(head,m)
linklist *head;
int m;
{linklist *p,*q;
int i,t,n;
p=head;
t=1;
q=p;
do
{p=q->next;
t=t+1;
if(t%n==0)
{printf("%4d",p->num);
q->next=p->next;
free(p);
}
else q=p;
}while(q==p);
head=p;
return(head);
}
main()
{int n,m;
linklist *head;
printf("input the total number\n");
scanf("%d",&n);
printf("input the number to c