链表 单循环链表 约瑟夫环

来源:互联网 发布:淘宝美工在哪里学 编辑:程序博客网 时间:2024/04/27 18:57
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
typedef struct List
{
int date;
struct List *next;
}NODE,*Node;
Node create_List(int );
void traverse_List(Node);
//void Joseph(Head,m,n,k);
int main(void)
{
Node Head;
int m,n,k;
printf("请输入总人数:");
scanf("%d",&n);
/*printf("请输入第一次开始报数的位置:");
scanf("%d",&m);
printf("你希望第几个数的人出列:");
scanf("%d",&k);*/
Head=create_List(n);
// Joseph(Head,m,n,k);
printf("\n");
return 0;
}
Node create_List(int n)
{
Node Head,p,s;
int i;
Head=NULL;//头指针为空
p=Head;//Head为不戴表头的头指针。
for(i=1;i<=n;i++)
{
s=(Node)malloc(sizeof(NODE));
s->date=i;
p->next=s;
p=s;
}
p->next=Head;//表尾指向首节点。
return Head;
}
void traverse_List(Node Head)
{
Node p;
for(p=Head;p->next!=Head;p=p->next)
{
printf("%3d",p->date);
}
if(p->next==Head)
printf("%3d",p->next);
printf("\n");
return ;


}
0 0