Queue : 데이터를 일시적으로 저장하기 위한 자료구조
가장 먼저 들어온 데이터가 가장 먼저 나가는 자료구조 ( FIFO : First In First Out)
ex) 은행 창구 : 먼저 번호표를 뽑은 사람이 먼저 서비스를 받는다.
Queue를 코드로 구현해보자면
import java.util.LinkedList;
public class QueueEx {
public static void main(String[] args) {
Queue s = new Queue();
for(int i = 1; i <= 4; i++) {
s.push(i);
System.out.println(s);
}
for(int i = 0; i < 4; i++) {
s.pop();
System.out.println(s);
}
}
}
class Queue {
private int max = 0;
private LinkedList<Object> Queue; // 순차삭제가 아니기 때문에 LinkedList가 더 빠름
public Queue() {
Queue = new LinkedList<Object>();
}
public void push(Object o) {
Queue.add(o);
max++;
}
public void pop() {
max--;
Queue.remove(0);
}
public int size() {
return max;
}
public String toString() {
return Queue.toString();
}
}
위처럼 실제로 구현할 수 있고 마찬가지로 C++ 에 이미 구현되어 있는 Queue을 사용해보자면
#include <iostream> // C++ 헤더
#include <queue>
using namespace std;
int main(void) {
queue<int> q;
int i = 1;
while (i <= 4) {
q.push(i);
cout << q.back() << ' ';
i++;
}
cout << "\n";
while (!q.empty()) {
cout << q.front() << ' ';
q.pop();
}
return 0;
}
위처럼 사용할 수 있다.
반응형
'알고리즘 > 풀이 힌트' 카테고리의 다른 글
[알고리즘] 깊이 우선 탐색 ( Depth First Search : DFS ) (4) | 2022.02.14 |
---|---|
[알고리즘] 너비 우선 탐색( Breadth First Search, BFS) (3) | 2022.02.13 |
[알고리즘] Stack ( 스택 ) (3) | 2022.02.11 |
[알고리즘] 계수 정렬 (0) | 2022.02.10 |
[알고리즘] 힙 정렬 (4) | 2022.02.10 |