上体育课的时候老师已经把班级同学拍成了两个队列而且每个队列都是按照从低到高排好队现在需要把两个队列,使用C++写代码
时间: 2024-02-21 19:58:03 浏览: 25
将两个队列合并成一个从小到大排序的队列可以使用归并排序的思想,具体代码实现如下:
```
#include <iostream>
#include <queue>
using namespace std;
queue<int> merge(queue<int> q1, queue<int> q2) {
queue<int> q;
while (!q1.empty() && !q2.empty()) {
if (q1.front() < q2.front()) {
q.push(q1.front());
q1.pop();
} else {
q.push(q2.front());
q2.pop();
}
}
while (!q1.empty()) {
q.push(q1.front());
q1.pop();
}
while (!q2.empty()) {
q.push(q2.front());
q2.pop();
}
return q;
}
int main() {
queue<int> q1, q2;
int n, m, x;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> x;
q1.push(x);
}
cin >> m;
for (int i = 0; i < m; i++) {
cin >> x;
q2.push(x);
}
queue<int> q = merge(q1, q2);
while (!q.empty()) {
cout << q.front() << " ";
q.pop();
}
return 0;
}
```
这段代码首先定义了一个 `merge` 函数,用来合并两个队列。该函数使用了两个 while 循环,分别将两个队列中的元素进行比较,将较小的元素放入新队列中,直到其中一个队列为空。最后,将另一个非空队列中的元素依次加入新队列。最后,将合并后的队列输出即可。
在主函数中,首先读入两个队列的元素,并调用 `merge` 函数将两个队列合并成一个新队列。最后,依次输出新队列中的元素即可。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)