首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

谁指点一下

2012-03-15 
哪位高手指点一下用静态链表来求解约瑟夫问题,谢谢啊![解决办法]C/C++ codevoid DelChain(int n,int m){st

哪位高手指点一下
用静态链表来求解约瑟夫问题,谢谢啊!

[解决办法]

C/C++ code
void DelChain(int n,int m){    struct item    {        int data;        item *next;    };    item *head,*tail,*temp;    head=tail=NULL;    int count=0;    for(int i=0;i<n;i++)//初始化链表    {        item *temp=new item;        temp->data=i+1;        temp->next=NULL;        if(head==NULL) head=tail=temp;        else        {            tail->next=temp;            tail=temp;        }    }    tail->next=head;    temp=head;    while(count<n)//删除元素    {        int x;        count++;        if(m==1) //已指向第m个元素        {            x=head->data;            head=head->next;        }        else        {            for(int k=1;k<m-1;k++)   temp=temp->next;            head=temp->next;            temp->next=head->next; //从链表中删除该元素            temp=temp->next;//记录下次开始计数的初始位置            x=head->data;            delete head;        }        if(count<n)     cout<<x<<"  ";        else cout<<x;    }    cout<<endl;} 

热点排行