数据结构 单链表 问题 必须用C语言!!

2024-12-12 19:55:26
推荐回答(2个)
回答1:

程序如下:
M和N的值在程序开始的define处修改。

#include
#define M 3
#define N 2

typedef struct node{
int num;
struct node *link;
} node;

main(){
int a=1;
node *head,*p,*q;
head=(node *)malloc(sizeof(struct node));
head->num=a;
p=head;
while(a!=M) //构建单链表
{
a+=1;
q=(node *)malloc(sizeof(struct node));
q->num=a;
p->link=q;
p=p->link;
}
p->link=head; //构建循环链表
p=head;
while(1) //开始报数
{
a=1;
while(a {
p=p->link;
a+=1;
}
if(p->link==p)
{
printf("猴王编号为: %d\n",p->num);
break;
}
else p->link=p->link->link; //删除报到N的猴子
p=p->link;
}
}

回答2:

明天给你了,你怎么联系了