728x90
📌큐 개념
먼저 들어온 자료가 먼자 나가는 FIFO (First in First Out), 선입선출 구조의 자료구조이다.
📌큐 주요 함수
- front (): 맨 앞의 요소 출력
- rear() : 맨 뒤의 요소 출력
- enqueue() : 큐 뒤에 요소 추가하는 함수
- dequeue() : 큐 맨 앞 요소를 빼는 함수
- isFull() : 큐가 가득 찼는지 확인하는 함수
- isEmpty() : 큐가 비었는지 확인하는 함수
📌큐 사용 사례
데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용한다.
- 우선순위가 같은 작업 예약 (프린터의 인쇄 대기열)
- 은행 업무
- 콜센터 고객 대기시간
- 프로세스 관리
- 너비 우선 탐색(BFS, Breadth-First Search) 구현
- 캐시(Cache) 구현
📌구현 코드
#include <iostream>
using namespace std;
const int MAX = 1000;
class Queue {
private:
int data[MAX];
int index_front;
int index_rear;
public:
Queue();
bool empty();
void push(int x);
void pop();
int front();
int rear();
int size();
};
Queue::Queue() {
index_front = 0;
index_rear = 0;
}
bool Queue::empty() {
return index_front == index_rear;
}
void Queue::push(int x) {
index_rear = (index_rear+1) % MAX;
data[index_rear] = x;
}
void Queue::pop() {
index_front = (index_front+1) % MAX;
}
int Queue::front() {
return data[(index_front+1)%MAX];
}
int Queue::rear() {
return data[index_rear];
}
int Queue::size() {
return (index_rear-index_front+MAX)%MAX;
}
출처: https://rebas.kr/795 [PROJECT REBAS]
참조 : https://devuna.tistory.com/22
728x90
'스터디 > Algorithm' 카테고리의 다른 글
[Algorithm] Prefix Sum 구간합 (0) | 2021.05.11 |
---|---|
[자료구조] Stack (스택) (0) | 2021.03.08 |
[Algorithm] Binary Search (이분 탐색) 개념 (0) | 2021.03.02 |
[Algorithm] Binary Search (이분 탐색) (0) | 2021.02.26 |
자료형 크기 및 범위 정리 (0) | 2021.02.26 |
댓글