编写程序,对一个含有 n 个元素的队列,出队从队头到队尾的第 k 个元素(1 ≤k≤n),其他队列元素不变。 c++提示:利用临时队列 tmpque,保存 k-1 个元素,出队第 k 个元素后,将剩 余元素复制至 tmpque。
时间: 2023-06-16 08:06:34 浏览: 125
以下是C++的代码实现:
```cpp
#include <iostream>
#include <queue>
using namespace std;
void dequeueK(queue<int>& que, int k) {
queue<int> tmpque;
for (int i = 0; i < k - 1; i++) {
tmpque.push(que.front());
que.pop();
}
que.pop();
while (!que.empty()) {
tmpque.push(que.front());
que.pop();
}
que = tmpque;
}
int main() {
int n, k;
cin >> n >> k;
queue<int> que;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
que.push(x);
}
dequeueK(que, k);
while (!que.empty()) {
cout << que.front() << " ";
que.pop();
}
cout << endl;
return 0;
}
```
其中,`dequeueK`函数用来实现题目要求的操作,参数为一个队列和一个整数k,表示出队从队头到队尾的第k个元素。首先,我们需要一个临时队列`tmpque`,用来保存队列中的元素。我们先将队列中前k-1个元素出队,并且依次加入到`tmpque`中。然后,我们将队头的第k个元素出队,此时原队列中还剩余n-k个元素。我们依次将这些元素也加入到`tmpque`中。最后,我们让原队列等于`tmpque`,即可完成操作。在主函数中,我们先读入n个元素加入到队列中,然后调用`dequeueK`函数,最后输出队列中剩余的元素。
阅读全文