求数据结构约瑟夫环如果用单循环链表而且不设头结点的程序

来源:百度知道 编辑:UC知道 时间:2024/05/19 03:13:39
分五部分
1.读取程序区中N个人的编码,密码,N用地址传入并且要返回
2.从键盘输入N和N个人的密码
3.根据得到的编号和密码,创建不带头结点的单向循环链表
4.根据链表,求解
5.主函数,选择1.2两种情况中的一种,分别调用

程序如下:
#include "stdio.h"
#include "stdlib.h"
typedef struct node
{ int data;
struct node *next;
}JD;
JD *xhlbjl(JD *front, JD *rear,int n)
{ /*建立循环队列*/
int i;

front=(JD *)malloc(sizeof(JD));
front->data=n; /*头指针指向n号*/
front->next=front;
for (i=n-1;i>0;i--)
{ rear=(JD *)malloc(sizeof(JD));
rear->data=i;
rear->next=front->next;
front->next=rear;
}
return(front);
}

JD *outqueue(JD *front, JD *rear,int m) /*出队列*/
{int i,s;

for (i=0;i<s-1;i++)
front=front->next;
return(front);
}
main()
{ JD *h,*p,*q,*s;
int i,j,m,n;
printf("请输入人数 ");
scanf("%d",&n);
h=xhlbjl( p,q,n);
p=h->next;
printf("坐成一圈的人是: ");
for(i=1;i<=n;i++)
{ printf("%3d",p->data);