文章
145
粉丝
143
获赞
21
访问
39.5k
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int data;
struct node* next;
}LNode,*LinkList;
//初始化无头循环链表
void InitList(LinkList &L,int n)
{
int i;
L = (LNode *)malloc(sizeof(LinkList));
L = NULL;
struct node *s,*p;
for(i = 1; i <= n; i++)
{
s = (LNode *)malloc(sizeof(LinkList));
s->data = i;
if(!L)
{
L = s;
p = L;
L->next = NULL;
}
else
{
s->next = NULL;
p->next = s;
p = s;
}
}
p->next = L;
}
//击鼓传花
int Pass_flower(LinkList &L,int n)
{
int k = 1;
struct node *p = L,*q,*qre;
while(n != 1)
{
k = 2;
q = p->next;
qre = p;
while(k < 3)
{
qre = q;
q = q->next;
k++;
}
if(n != 1)
{
qre->next = q->next;
free(q);
q = qre->next;
n--;
}
p = q;
}
return p->data;
}
int main()
{
int n;
LinkList L;
scanf("%d",&n);
InitList(L,n);
printf("%d",Pass_flow...
登录后发布评论
暂无评论,来抢沙发