举例说明:一个 1~到 8的队列 数到3的出列
队列实现约瑟夫环的思路:
将 队列的头 给 临时变量 并pop弹出队首元素 并将它插入队尾,当循环到队首为要出列的数时 直接弹出。以此形成一个循环队列。直到队列只剩一个元素时自己弹出再插入,最后弹出结束循环即可
实现部分代码:
void yuesefu(int n)
{
SeqQueue seqY;
for (int i = 1;i <= 8; i++)
{
seqY.push(i);
}
int flag = 1;
int x = 0;
while (seqY.getSize() > 0)
{
for (int i = 0;i < n;i++)
{
if (i == n - 1)
{
cout << seqY.front() << "出列" << endl;
seqY.pop();
break;
}
x = seqY.front();
seqY.pop();
seqY.push(x);
}
}
}