首页 > 其他 > 详细

约瑟夫环(循环链表解决问题)

时间:2021-09-11 12:57:49      阅读:11      评论:0      收藏:0      [点我收藏+]
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int data;
struct Node* next;
}Node;

Node * CreateList(int count)
{
int data;
Node *head = (Node *)malloc(sizeof(Node));
Node *rear;
head->next=NULL;
rear=head;
for (int i = 0; i < count; i++)
{
Node *p = (Node *)malloc(sizeof(Node));
scanf("%d",&data);
p->data=data;
printf("已存入%d\n",p->data);
p->next=head->next;
rear->next=p;
rear=p;
}
free(head);
return rear->next;
}


int main()
{
int count;
int i=0;
scanf("%d",&count);
Node *p=CreateList(count);
while (p!=p->next)
{
i++;
if ((i+1)%3==0)
{
Node *temp;
temp=p->next;
p->next=temp->next;
printf("当前是第%d个数,被移除的数是%d\n",i+1,temp->data);
free(temp);
}
else
p=p->next;
}
printf("现在是第%d位,剩下的数是%d\n",i+2,p->data);
return 0;
}

 

约瑟夫环(循环链表解决问题)

原文:https://www.cnblogs.com/zengxiangtong/p/15250737.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!