用c++实现编写程序,对一个含有 n 个元素的队列,出队从队头到队尾的第 k 个元素(1 ≤k≤n),其他队列元素不变。 提示:利用临时队列 tmpque,保存 k-1 个元素,出队第 k 个元素后,将剩 余元素复制至 tmpque。
时间: 2024-05-16 08:13:50 浏览: 84
用c++写的队列程序
以下是用 C++ 实现的程序:
```cpp
#include <iostream>
#include <queue>
using namespace std;
void deleteKth(queue<int>& q, int k) {
if (k < 1 || k > q.size()) {
return;
}
queue<int> tmpque;
for (int i = 0; i < k - 1; i++) {
int front = q.front();
q.pop();
tmpque.push(front);
}
q.pop();
while (!q.empty()) {
int front = q.front();
q.pop();
tmpque.push(front);
}
while (!tmpque.empty()) {
int front = tmpque.front();
tmpque.pop();
q.push(front);
}
}
int main() {
int n, k;
queue<int> q;
cout << "请输入队列元素个数 n 和要删除的第 k 个元素:" << endl;
cin >> n >> k;
cout << "请输入队列元素:" << endl;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
q.push(num);
}
deleteKth(q, k);
cout << "删除第 " << k << " 个元素后的队列为:" << endl;
while (!q.empty()) {
int front = q.front();
q.pop();
cout << front << " ";
}
cout << endl;
return 0;
}
```
使用示例:
```
请输入队列元素个数 n 和要删除的第 k 个元素:
5 3
请输入队列元素:
1 2 3 4 5
删除第 3 个元素后的队列为:
1 2 4 5
```
阅读全文