链表实现约瑟夫环问题
2012-09-26 23:13
260 查看
#include<iostream>
using namespace std;
typedef int ElemType;
typedef struct List
{
ElemType data;
struct List *next;
}LinkNode,*LinkList;
LinkNode *creat_List(int number)
{
LinkList first=new LinkNode;
first->data=-1;
LinkList p=first;
if(first==NULL)
{
cout<<"分配内存失败"<<endl;
exit(0);
}
cout<<"请输入相应数据"<<endl;
for(int i=0;i<number;i++)
{
p->next=new LinkNode;
cin>>p->next->data;
p=p->next;
}
p->next=first;
return p;
}
void deal(LinkList&real,int number)
{
int tag=0;
LinkNode *p;
while(number>1)
{
if(real->next->data==-1)
{
real=real->next;
continue;
}
else
{
tag++;
if(tag==3)
{
p=real->next;
real->next=real->next->next;
delete p;
tag=0;
number--;
continue;
}
real=real->next;
}
}
while(true)
{
if(real->data!=-1)
{
cout<<"最后一个人的数据为:"<<endl;
cout<<real->data<<endl;
break;
}
real=real->next;
}
}
void main()
{
LinkList real,real1;
int number;
cout<<"请输入有多少人"<<endl;
cin>>number;
real=creat_List(number);
deal(real,number);
}
using namespace std;
typedef int ElemType;
typedef struct List
{
ElemType data;
struct List *next;
}LinkNode,*LinkList;
LinkNode *creat_List(int number)
{
LinkList first=new LinkNode;
first->data=-1;
LinkList p=first;
if(first==NULL)
{
cout<<"分配内存失败"<<endl;
exit(0);
}
cout<<"请输入相应数据"<<endl;
for(int i=0;i<number;i++)
{
p->next=new LinkNode;
cin>>p->next->data;
p=p->next;
}
p->next=first;
return p;
}
void deal(LinkList&real,int number)
{
int tag=0;
LinkNode *p;
while(number>1)
{
if(real->next->data==-1)
{
real=real->next;
continue;
}
else
{
tag++;
if(tag==3)
{
p=real->next;
real->next=real->next->next;
delete p;
tag=0;
number--;
continue;
}
real=real->next;
}
}
while(true)
{
if(real->data!=-1)
{
cout<<"最后一个人的数据为:"<<endl;
cout<<real->data<<endl;
break;
}
real=real->next;
}
}
void main()
{
LinkList real,real1;
int number;
cout<<"请输入有多少人"<<endl;
cin>>number;
real=creat_List(number);
deal(real,number);
}
相关文章推荐
- 使用链表实现环结构以解决约瑟夫环问题
- PHP实现单向链表解决约瑟夫环问题
- 链表经典问题:约瑟夫环的实现
- 用java实现链表并解决约瑟夫环问题
- 用数组和链表实现约瑟夫环问题
- 单链表---实现约瑟夫环的问题
- 约瑟夫环问题的链表实现
- 约瑟夫环问题(丢手帕游戏)Java 链表实现
- 约瑟夫环问题的两种实现[链表+数组]
- 约瑟夫环问题 链表实现
- 循环链表 CircleList的实现并解决约瑟夫环问题
- 循环链表 约瑟夫环问题实现
- 【c++】约瑟夫环问题的链表实现
- PHP实现的基于单向链表解决约瑟夫环问题示例
- Java语言解决约瑟夫环问题(链表实现)
- 自己实现集合框架(五):利用单链表解决约瑟夫环问题
- 约瑟夫环问题(不带头结点单循环链表实现和数组实现)
- 单链表实现猴子选大王(约瑟夫环问题)
- 链表实现约瑟夫环问题
- 单链表中的一些经典问题--约瑟夫环,逆序,查找,复杂链表复制,链表带环问题