이번 포스팅에서는 큐(Queue)에 관해 학습합니다.
I) 큐
큐(Queue)는 스택(Stack)과 마찬가지로 대표적인 자료구조이다.
먼저 들어온 자료가 먼저 나가는 (First In First Out) FIFO 방식으로 작동한다.
먼저 온 사람이 먼저 서비스를 받는 은행창구와 같다.
왼쪽이 입구이고 오른쪽이 출구인 아래의 큐에 다음과 같은 입력을 차례대로 했다고 해보자.
숫자 1 삽입 - 숫자 2 삽입 - 숫자 4 삽입 - 숫자 하나 삭제 - 숫자 하나 삭제 - 숫자 3 삽입
그렇다면 과정 별 결과는 아래 그림과 같을 것이다.
이제 STL Queue 라이브러리 선언과 함수에 대해 간단하게 정리하겠다.
queue container 은 <queue> 헤더파일 안에 존재한다.
기본 생성자 형식은 queue < DATA TYPE > 변수 이름 이다.
queue container 의 멤버 함수는
- front()
- 가장 처음 들어간 자료에 접근한다. (pop 하면 나올 자료)
- back()
- 가장 나중에 들어간 자료에 접근한다. (가장 최근에 push 한 자료)
- empty()
- Queue가 비어있는지 확인하는 함수이다.
- 비어있다면 1(True)를, 차있다면 0(False)를 반환한다.
- size()
- Queue의 크기를 반환하는 함수이다.
- 자료의 개수를 반환한다.
- push()
- 자료 하나를 Queue에 집어 넣는다.
- pop()
- 가장 먼저 들어간 자료를 삭제한다. ( 맨 앞에 있는 자료를 삭제한다.)
#include <iostream>
#include <queue>
using namespace std;
int main()
{ queue<int> q;
q.push(1);
q.push(2);
q.push(4);
q.pop();
q.pop();
q.push(3);
while(!q.empty())
{ cout<<q.front()<<endl; q.pop(); }
}
*유의사항
- 공부 중인 인공지능공학과 대학생이 정리해서 남긴 정리입니다.
- 정확하지 않거나, 틀린 점이 있다면 댓글로 알려주시면 감사하겠습니다.
'Pro Developer > Algorithm' 카테고리의 다른 글
[알고리즘] 시간 복잡도 (Python) (1) | 2022.12.28 |
---|
댓글