数据结构约瑟夫环实验运行怎么没有结果啊??
#include<stdio.h>#include<stdlib.h>
#include<malloc.h>
#define OVERFLOW 0
typedef struct LNode
{
int data;
struct LNode *next;
int tag;
}LNode,*LinkList;
void main()
{
int i,j;
int n=7;
int a[8]={0,3,1,7,2,4,8,4};
int m=20;
LinkList L;
L=(LinkList)malloc(sizeof(LNode));
printf("OK");
if(!L)
exit(OVERFLOW);
LinkList p=L;//不含头结点
LinkList s;
LinkList q;
L->data=a[1];
L->tag=1;
for(i=2; i<=n; i++)//初始化循环链表
{
q=(LinkList)malloc(sizeof(LNode));
p->next=q;
q->data=a[i];
q->tag=i;
p=p->next;
}
p->next=L;
for(j=1; j<=m; j++)//各个元素结点出列的过程
{
if(p->next->data==j)
{
s=p->next->next;
m=p->next->data;
j=1;
printf("%d\n",p->next->tag);
q=p->next;
free(q);
p->next=s;
}
p=p->next;
if(p->next==p)
{
printf("%d",p->tag);//最后一个元素结点的输出
break;
}
}
}