周末的舞会C++

队列-周末的舞会-C++

`

一、题目

大头本周末将参加一个舞会,并负责舞台技术支持
第一个舞蹈节目已正式出炉!表演编排为:演员按编号1-n的顺序在舞台一侧排成-
列,队伍的第1个演员上舞台中央表演,第2个演员边做动作边走到队尾等候;第3个演员
上台表演,第4个演员边做动作边走到队尾等候;....队伍每次最前面的演员按照上台
去队属,上台,去队尾重复,直到所有演员都已上台表演一次,表演完毕
大头准备做一个演出顺序编号显示程序,监控表演的编号顺序,我们一起来试试吧
输入格式:演员人数n(1<==20)舞台能容纳40人排长队
输出格式:演员上台表演的编号顺序,用空格隔开
输入样例:6
输出样例:135264

二、解题

代码如下(示例):

#include 

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当队尾,注意赋值的方式即可;

你可能感兴趣的:(算法)