要求定义类,用C++面向对象的思想解决约瑟夫环问题,下面是我的代码没有定义类,求大神修改

#include <iostream>
using namespace std;

typedef struct Node{
int num,pwd;
struct Node *next;
}Node,*LinkList;

LinkList getnode(int n)
{
//head为开头指针,tail为末尾指针,p为当前指针的前一个指针,q为当前指针.
LinkList head,tail,p,q;
int i;
head=new Node;
p=head;
for(i=1;i<n;i++)
{
q=new Node;
p->next=q;
p=q;
} //建立一个n个结点的链表.
tail=q;
tail->next=head;
p=head;
for(i=1;i<=n;i++)
{
p->num=i;
cout<<"Please enter No."<<i<<"'s password:";
cin>>p->pwd;
p=p->next;
} //输入个人持有密码.
return head;
}

void display(Node *p, int n, int m)
{
int i,j;
LinkList q;
for(i=0;i<n;i++)p=p->next;
for(i=1;i<=n;i++)
{
for(j=1;j<m;j++)p=p->next;
q=p->next;
m=q->pwd;
if(i==n)
{
cout<<q->num<<endl;
break;
}
cout<<q->num<<" ";
p->next=q->next;
delete q;
} //输出序列
}

int main()
{
int m=0,n=0; //m为初始密码,n为人数.
cout<<"Please enter m=";
cin>>m;
cout<<"Please enter n=";
cin>>n;
LinkList head; //head为开头指针.
head=getnode(n);
cout<<"result:"<<endl;
display(head,n,m);
return 0;
}

#include <iostream> 
using namespace std; 
class Solution {
public: typedef struct Node{ 
int num,pwd; 
struct Node *next; 
}Node,*LinkList; 
public: static LinkList getnode(int n) 

//head为开头指针,tail为末尾指针,p为当前指针的前一个指针,q为当前指针. 
LinkList head,tail,p,q; 
int i; 
head=new Node; 
p=head; 
for(i=1;i<n;i++) 

q=new Node; 
p->next=q; 
p=q; 
} //建立一个n个结点的链表. 
tail=q; 
tail->next=head; 
p=head; 
for(i=1;i<=n;i++) 

p->num=i; 
cout<<"Please enter No."<<i<<"'s password:"; 
cin>>p->pwd; 
p=p->next; 
} //输入个人持有密码. 
return head; 

public: static void display(Node *p, int n, int m) 

int i,j; 
LinkList q;
for(i=0;i<n;i++)p=p->next;
for(i=1;i<=n;i++) 

for(j=1;j<m;j++)p=p->next; 
q=p->next; 
m=q->pwd; 
if(i==n) 

cout<<q->num<<endl; 
break; 

cout<<q->num<<" "; 
p->next=q->next; 
delete q; 
} //输出序列

public: static int main() 

int m=0,n=0; //m为初始密码,n为人数. 
cout<<"Please enter m="; 
cin>>m;
cout<<"Please enter n="; 
cin>>n; 
LinkList head; //head为开头指针. 
head=getnode(n); 
cout<<"result:"<<endl; 
display(head,n,m);
return 0;
}
};
int main(){return Solution::main();}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答