队列-周末的舞会-C++
`
一、题目
大头本周末将参加一个舞会,并负责舞台技术支持
第一个舞蹈节目已正式出炉!表演编排为:演员按编号1-n的顺序在舞台一侧排成-
列,队伍的第1个演员上舞台中央表演,第2个演员边做动作边走到队尾等候;第3个演员
上台表演,第4个演员边做动作边走到队尾等候;....队伍每次最前面的演员按照上台
去队属,上台,去队尾重复,直到所有演员都已上台表演一次,表演完毕
大头准备做一个演出顺序编号显示程序,监控表演的编号顺序,我们一起来试试吧
输入格式:演员人数n(1<==20)舞台能容纳40人排长队
输出格式:演员上台表演的编号顺序,用空格隔开
输入样例:6
输出样例:135264
二、解题
代码如下(示例):
#include <iostream>
using namespace std;
int main()
{
int a[100];//创建一个队列
int n; //n个人
cin>>n;
int f = 1;//队头
int r = n+1;//队尾
for(int i=1; i<=n; i++)//每个成员放在队列中
{
a[i] = i;
}
while(f!=r)//队头==队尾代表没有值了
{
cout<<a[f]<<" ";//第一位出队
f++;//对头后移一位
a[r] = a[f];//第二位去队尾 也就是队头赋值给队尾
f++;//队头后移一位
r++;//队尾后移一位
}
return 0;
}
总结
提示:这里对文章进行总结:
队列的本质上是数组,多了一个front以及rear当队尾,注意赋值的方式即可;
该文章介绍了一个使用C++编程解决的问题,即模拟舞会上演员按照编号顺序上台表演的场景。通过队列的概念,演员依次上台并在表演后移动到队尾,直至所有演员都表演过一次。提供的代码示例展示了如何用数组实现这一过程。
2895

被折叠的 条评论
为什么被折叠?



