首页 > C/C++语言 > C/C++数据结构 > [转]约瑟夫环-我的第一个数据结构实验
2006
03-15

[转]约瑟夫环-我的第一个数据结构实验

#include <iostream>
using namespace std;

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

int main()
{    
    int i,j,m,n;                            //m为报数上限,n为人数。
    cout<<”Please enter  n=”;
    if(!(cin>>n)) {cout<&l t;”ERROR:That’s not a number!”;return -1 ;}
    cout<<”Please enter  m=”;
    if(!(cin>>m)) {cout<&l t;”ERROR:That’s not a number!”;return -2 ;}
    LinkList head,tail,p,q;                 //head为头结点指针,tail为尾结点
                      //指针,p为当前指针的前一指针,q
                                            //当前指针。
    head=new LNode;
    p=head;
    for(i=1;i<n;i++)
    {
        q=new L Node;
        p->next=q ;
        p=q;
    }
    tail=q;
    tail->next=head;                        //建立n个结点的循环链表。

    p=head;
    for(i=1;i<=n;i++)
    {
        p->num=i;
        cout<< “Please enter No.”<<i<<”‘s passwo rd:”;
        cin>>p ->pwd;
        p=p->next ;
    }                                       //输入密码。

    cout<<”result:”;
    p=tail;
    for(i=1;i<=n;i++)
    {
        for(j=1;j&lt ;m;j++) p=p->next;
        q=p->next ;
        m=q->pwd;
        cout<< “ ”<<q->num;
        p->next=q ->next;
        delete  q;
    }                                       //输出编号。
    return 0;
}

 


留下一个回复