Josephus問題的C++新解法

Josephus問題的C++新解法,第1張

Josephus問題的C++新解法,第2張

Josephus.h
class約瑟夫斯
{
public:
void out control(int num,int begin,int interval);
protected:
int num;
int begin;
int interval;
};

list . h
struct person
{
int number;
人*下一個;
};


class list
{
public:
list(int num)//initialize point->number
{
josephus = new people[num];
point = Joseph us;
for(int I = 1;I {
point-> number = I;
point-> next = Joseph us I % num;
point = point->next;
}
point = & Joseph us[num-1];//設置開始指針指曏最後一個節點,進入循環時從0開始。
}

~ List()
{
delete[]josephus;//返廻堆內存空
}

void Change (int num,int begin);
void計數(int interval);
void Output();
void Show();

受保護的:
人*約瑟夫斯;
人*點;
人*切_點;
};


Joseph us . CPP
# include
# include" Joseph us . h"
# include" list . h"
使用命名空間std

void josephus::out control(int num,int begin,int interval)//調用List的成員函數,依次輸出(num)中列出的數字
{
List;
在。Change (num,begin);

coutnext
}
}

Void List::Show() //打印編號
{
cout next;
point = cut _ point;
}


main . CPP
# include
# include" Joseph us . h"
使用命名空間std

void main()
{ int num,begin,interval

cout >num
if(num {
cout return;
}

cout>interval;
if(intervalnum)
{
cout


生活常識_百科知識_各類知識大全»Josephus問題的C++新解法

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情