kar7mp5
[자료구조] C++로 우선순위 큐 구현 (오름차순 정렬) 본문
728x90
#include <iostream>
#include <vector>
using namespace std;
struct compare {
bool operator()(const int &a, const int &b) {
return a < b;
}
};
class unsortedSeqPQ {
private:
vector<int> seq;
public:
bool empty() {
return (seq.size() == 0);
}
void insert(int data) {
seq.push_back(data);
}
int min() {
if (empty())
return -1;
compare C;
int result = seq[0];
for (int i = 0; i < seq.size(); ++i) {
if (C(seq[i], result)) {
result = seq[i];
}
}
return result;
}
void removeMin() {
if (empty())
return;
compare C;
int minIdx = 0;
for (int i = 0; i < seq.size(); ++i) {
if (C(seq[i], seq[minIdx])) {
minIdx = i;
}
}
seq.erase(seq.begin() + minIdx);
}
};
int main() {
unsortedSeqPQ uq;
int T;
cin >> T;
while (T--) {
int N;
cin >> N;
for (int i = 0; i < N; ++i) {
int e;
cin >> e;
uq.insert(e);
}
for (int i = 0; i < N; ++i) {
cout << uq.min() << ' ';
uq.removeMin();
}
}
return 0;
}
728x90
'전공 > 자료구조' 카테고리의 다른 글
[자료구조] C++로 우선순위 큐 구현 (1) | 2024.05.03 |
---|---|
[자료 구조] C++ Preorder 구현 (0) | 2024.04.19 |
[자료 구조] C++로 Tree depth 계산 (0) | 2024.04.12 |
[자료 구조] C++로 Tree 구현 (0) | 2024.04.12 |