记录约瑟夫环
来源:互联网 发布:个体诊所软件 编辑:程序博客网 时间:2024/06/16 04:52
#include <stdio.h>
#include <malloc.h>
#define max 10
typedef int ElemType;
typedef struct CLNode
{
ElemType date;
ElemType number;
struct CLNode *next;
}CLNode,*CLinkList;
#include <malloc.h>
#define max 10
typedef int ElemType;
typedef struct CLNode
{
ElemType date;
ElemType number;
struct CLNode *next;
}CLNode,*CLinkList;
CLinkList crt_clinklist();
void prn_clinklist(CLinkList tail);
CLinkList del_clinklist(CLinkList tail,int i);
void game(CLinkList tail,int first_number);
void prn_clinklist(CLinkList tail);
CLinkList del_clinklist(CLinkList tail,int i);
void game(CLinkList tail,int first_number);
CLinkList crt_clinklist()
{
CLinkList tail=NULL;
CLNode *s,*head=NULL;
int x[max];
printf("请输入若干整数并以-1结束");
for(int i=0;i<max;i++)
{
scanf("%d",&x[i]);
if(x[i]!=-1)
{
s=(CLNode *)malloc(sizeof(CLNode));
s->date=x[i];
s->number=i+1;
if(head==NULL){head=s;tail=s;}
else {tail->next=s;tail=s;}
}
else break;
}
if(tail!=NULL){tail->next=head;}
return tail;
}
{
CLinkList tail=NULL;
CLNode *s,*head=NULL;
int x[max];
printf("请输入若干整数并以-1结束");
for(int i=0;i<max;i++)
{
scanf("%d",&x[i]);
if(x[i]!=-1)
{
s=(CLNode *)malloc(sizeof(CLNode));
s->date=x[i];
s->number=i+1;
if(head==NULL){head=s;tail=s;}
else {tail->next=s;tail=s;}
}
else break;
}
if(tail!=NULL){tail->next=head;}
return tail;
}
void prn_clinklist(CLinkList tail)
{
CLNode *p;
p=tail->next;
while(p!=tail)
{
printf("密码是%d,",p->date);
p=p->next;
}
printf("密码是%d\n",p->date);
}
{
CLNode *p;
p=tail->next;
while(p!=tail)
{
printf("密码是%d,",p->date);
p=p->next;
}
printf("密码是%d\n",p->date);
}
CLinkList del_clinklist(CLinkList tail,int i)
{
CLNode *q,*pre;
pre=tail;q=tail->next;/*只剩一个节点的情况未考虑*/
for(int j=1;j<i;j++)
{
q=q->next;
pre=pre->next;
}
pre=q->next;
free(q);
return pre;
}
{
CLNode *q,*pre;
pre=tail;q=tail->next;/*只剩一个节点的情况未考虑*/
for(int j=1;j<i;j++)
{
q=q->next;
pre=pre->next;
}
pre=q->next;
free(q);
return pre;
}
void game(CLinkList tail,int first_number)
{
CLNode *q,*pre;
pre=tail;
while(pre->next!=pre)
{
q=pre->next;
for(int j=1;j<first_number;j++)
{
q=q->next;
pre=pre->next;
}
printf("出列人序号为%d",q->number);
first_number=q->date;
pre->next=q->next;
}
printf("出列人序号为%d",pre->number);
}
{
CLNode *q,*pre;
pre=tail;
while(pre->next!=pre)
{
q=pre->next;
for(int j=1;j<first_number;j++)
{
q=q->next;
pre=pre->next;
}
printf("出列人序号为%d",q->number);
first_number=q->date;
pre->next=q->next;
}
printf("出列人序号为%d",pre->number);
}
void main()
{
int m;
CLinkList my_clist;
my_clist=crt_clinklist();
prn_clinklist(my_clist);
printf("请输入密码:");
scanf("%d",&m);
game(my_clist,m);
}
{
int m;
CLinkList my_clist;
my_clist=crt_clinklist();
prn_clinklist(my_clist);
printf("请输入密码:");
scanf("%d",&m);
game(my_clist,m);
}
////////////////修改数次之后终于成功了,自己独立写完的第一个程序,纪念此刻惊喜。希望两年以后自己还能保持这份动力,做更多
阅读全文
0 0
- 记录约瑟夫环
- 约瑟夫问题、约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- 约瑟夫环
- java中构造函数和一般函数的区别
- Spring Cloud Sleuth进阶实战
- MT76x8的多网口与GPIO复用配置
- 前端学习+项目问题9.18-9.24
- Deformable CONV
- 记录约瑟夫环
- 经常使用的一些正则表达式
- Linux 添加路由
- leetcode 3. Longest Substring Without Repeating Characters
- 442. Find All Duplicates in an Array
- 数组中出现次数超过一半的数字java实现
- 动态调用WebService时如何保持Session
- Java中创建对象的几种方式
- 轻量级框架SSH应用与开发——Hibernate之学习总结(进阶)