7-1 有趣的队列 分数 20 全屏浏览题目 切换布局 作者 zx 单位 浙大城市学院 本题重新定义队列出队的操作:队首出队的数字重新在队尾入队。 例:队列中有1 2 3三个数字,现要求队首出队,则1从队首出队,同时1从队尾入队,队列变成2 3 1。 入队的顺序为1,2,3,4......n,同时给一个二进制字符串,1代表出队操作,0代表入队操作。 输入格式: 在第一行有两个数字n,m(n<=100,n<m),其中n为入队的数字个数,m代表操作数 接下来m行,每行一个数字,1或者0,代表不同的操作 输出格式: 输出操作后队列的每个数字,数字间以空格分隔,最后一个数字后没有空格
时间: 2024-03-30 15:34:49 浏览: 317
题目分析:
根据题意,我们需要重新定义队列出队的操作,即队首出队的数字重新在队尾入队,我们可以用循环队列来实现这个功能,但是需要注意一下队列的长度问题,因为每出队一次,队列的长度减一,每入队一次,队列的长度加一,所以需要记录一下队列当前的长度。
算法步骤:
1.定义循环队列,并初始化队列长度为n;
2.遍历二进制字符串,如果是1,就将队首出队并将其重新入队到队尾,同时更新队列长度;
3.如果是0,则将入队的数字加入队列中,并更新队列长度;
4.最后遍历完所有操作,依次输出队列中的所有数字。
C++ 代码:
阅读全文