要使用C++隊列實現從小到大排序,可以使用以下步驟:
首先,將原始數據依次插入到隊列中。
接下來,創建一個輔助隊列,并將原始隊列中的第一個元素插入到輔助隊列中。
然后,從原始隊列中取出第二個元素,并將其與輔助隊列中的元素依次比較。如果原始隊列中的元素比輔助隊列中的元素小,則將其插入到輔助隊列中的合適位置。如果原始隊列中的元素比輔助隊列中的元素大,則將輔助隊列中的元素依次插入到原始隊列中,并將原始隊列中的元素插入到輔助隊列中的合適位置。
重復步驟3,直到原始隊列為空。
最后,輔助隊列中的元素就是從小到大排序的結果。
以下是一個示例代碼:
#include <iostream>
#include <queue>
using namespace std;
void sortQueue(queue<int>& q) {
queue<int> temp;
while (!q.empty()) {
int current = q.front();
q.pop();
while (!temp.empty() && temp.back() > current) {
q.push(temp.back());
temp.pop();
}
temp.push(current);
}
q = temp;
}
int main() {
queue<int> q;
q.push(5);
q.push(2);
q.push(8);
q.push(1);
q.push(3);
cout << "原始隊列:";
while (!q.empty()) {
cout << q.front() << " ";
q.pop();
}
cout << endl;
sortQueue(q);
cout << "排序后的隊列:";
while (!q.empty()) {
cout << q.front() << " ";
q.pop();
}
cout << endl;
return 0;
}
輸出結果為:
原始隊列:5 2 8 1 3
排序后的隊列:1 2 3 5 8