他笑他自己 2017-09-18 07:27 采纳率: 66.7%
浏览 791
已结题

求一个c++ builder 约瑟夫环可视化

最近刚学c++ builder,用于参考,谢谢。图片说明图片说明图片说明图片说明

  • 写回答

1条回答 默认 最新

  • yitian_hm 2017-09-18 07:48
    关注

    */

    #include

    using namespace std;

    struct MyNode

    {

    MyNode(int a_data):m_data(a_data),m_pNext(NULL) {}

    int m_data;

    MyNode *m_pNext;

    };

    class Josephus

    {

    public:

    Josephus(int a_N, int a_K, int a_M):m_N(a_N),m_K(a_K),m_M(a_M)

    {

    createList();

    outputList();

    }

    protected:

    void createList();

    void outputList();

    private:

    MyNode *m_pHead;//循环链表的头节点

    int m_N; //链表节点个数

    int m_K; //第一个报数人的序号

    int m_M; //报数出局的数

    };

    void Josephus::createList()

    {

    MyNode *pre = NULL;

    MyNode *cur = NULL;

    MyNode *p = new MyNode(1);

    m_pHead = p;

    cur = p;

    for (int i=2; i<=m_N; i++)

    {

    p = new MyNode(i);

    pre = cur;

    cur = p;

    pre->m_pNext = cur;

    }

    cur->m_pNext = m_pHead;

    int n=m_N;

    p = m_pHead;

    while (n--)

    {

    cout << p->m_data << ",";

    p = p->m_pNext;

    }

    cout << endl;

    }

    void Josephus::outputList()

    {

    MyNode *pre = NULL;

    MyNode *cur = m_pHead;

    m_K;

    while (m_K--) //寻找第K个人(开始报数的人)

    {

    pre = cur;

    cur = cur->m_pNext;

    }

    while (m_N--) //输出链表中所有的节点值

    {

    int s = m_M-1;

    while (s--) //寻找间隔M的人

    {

    pre = cur;

    cur = cur->m_pNext;

    }

    MyNode *p = cur;

    cout << p->m_data << ",";

    cur = cur->m_pNext; //删除节点的过程

    pre->m_pNext = cur;

    delete p;

    p=NULL;

    }

    }

    int main()

    {

    Josephus josephus(100,5,5);

    return 0;

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog