|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lemon3 于 2018-12-6 16:57 编辑
这一段怎么从给定的起点开始寻找呀!!!
#include <stdio.h>
#include <stdlib.h>
//定义循环链表
typedef struct node//定义node结构体
{
int data;
struct node* next;
}cLinkList;//typedef struct node* cLinkList;定义一个struct node类型的循环链表
//主函数
int main()
{
cLinkList *head, *p, *s, *temp;
int n, k, m; //n是总人数,k是起点,m是间隔
int i = 1;
printf("Please enter the total number n:\n");
scanf("%d", &n);
scanf("%d", &k);
scanf("%d", &m);
//k %= n;
head = (cLinkList *)malloc(sizeof(cLinkList));
p = head;
p->next = p;//这里要赋值为p,不能赋值为head,要保持head的位置不变
p->data = i;
for(i = 1; i <= n; i++)
{
s = (cLinkList *)malloc(sizeof(cLinkList));
s->data = i;
s->next = p->next;
p->next = s;
p = s;
}
p = head;
int total = n;
while(n--)
{
for(i = 1; i < m - 1; i++)
{
p = p->next;
}
printf("%d ", p->next->data);
temp = p->next;//temp为要删除的元素
p->next = temp->next;//链表中跳过temp
free(temp);//释放temp
p = p->next;//p向前移动继续寻找
}
return 0;
} |
|