⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 josephus2.cpp

📁 是一本教程的实例代码,可以下载后直接运行,即可以得到答案.
💻 CPP
字号:
#include "Onering.h"                       //单向循环链表类
void display(Onering &ring,int s,int d)    //解约瑟夫环
{
    int j=0;
    OnelinkNode *p=ring.head;
    while(j<s-1)                           //计数起始点
    {
        j++;
        p=p->next;
    }
    while(p->next!=p)                      //多于一个结点时循环 
    {
        j=1;
        while(j<d-1)                       //计数
        {
            j++;
            p=p->next;
        }
        ring.remove(p);                    //删除p的后继结点
        p=p->next;
        ring.output();
    }
    cout<<"The final person is "<<p->data<<"\n"; //最后一个人
}
void main(void)
{
    int n=5,s=1,d=2;
    Onering ring1(n);                      //建立有n个结点的单向循环链表
    ring1.output();
    display(ring1,s,d);
}
/*
程序运行结果如下:
Onering:  1 -> 2 -> 3 -> 4 -> 5 -> 
remove:  2    Onering:  1 -> 3 -> 4 -> 5 -> 
remove:  4    Onering:  1 -> 3 -> 5 -> 
remove:  1    Onering:  3 -> 5 -> 
remove:  5    Onering:  3 -> 
The final person is 3
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -