约瑟夫问题

void CTest::TestJoseph()
{
    CircleList<int> jobs;

    for(int i=1; i<16; i++)
    {
        jobs.AddTail(i);
    }

    jobs.SetBegin();
    // 最后留下1个人,也就是说要删除14个人
    int len = jobs.GetCount();

    for(int i=1; i<len; i++) // 要删除的人数
    {
        for(int j=0; j < 3; j++)// 报数
        {
            jobs.GetCurrentDataAndRemoveNext(); // 移动到下一个
        }

        // 找到要删除的结点
        jobs.RemoveThis();
    }

    cout << jobs.GetCurrentDataAndRemoveNext() << endl;

}


发布了134 篇原创文章 · 获赞 7 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章