본문 바로가기
Data Structure

큐(Queue)

by 기리의 개발로그 2015. 7. 8.


한쪽 끝에서는 삽입 작업이 이루어지고 반대쪽 끝에서는 삭제 작업이 이루어지는 자료구조.


스택과 마찬가지로 배열과 리스트로 구현이 가능하다.

시간 순서대로 쌓이며 가장 먼저 삽입된 자료가 가장 먼저 삭제되는

선입선출(FIFO : First In Fist Out)의 구조를 갖는다.


Insert : 새로운 데이터를 삽입하는 작업(rear 에서 발생)

Remove : 데이터를 제거하는 작업(front 에서 발생

Peek :  front가 가리키는 데이터를 읽는 작업



1. 큐 - 배열 형태



rear 위치에 데이터가 삽입된 후 rear++

front 위치에 있는 데이터를 삭제한 후 front++


삽입, 삭제가 반복될 수록 rear와 front가 계속 증가하기 때문에 

이미 꺼낸 데이터가 들어있던 배열의 인덱스를 사용할 수 없게 된다.



2. 큐 - 리스트



front와 rear의 초기값은 null이며 삭제 시 front == rear 이면서 null이 아니라면 마지막 노드를 의미하므로

데이터를 삭제한 후 null로 초기화한다. 




실행코드 / 결과 - 리스트 형태






반응형

'Data Structure' 카테고리의 다른 글

트리(Tree)  (0) 2015.07.29
이중 연결 리스트(Doubly Linked List)  (0) 2015.07.26
단순 연결 리스트(Simple Linked List)  (0) 2015.07.26
스택(Stack)  (0) 2015.07.08
ArrayList vs LinkedList  (0) 2015.06.30

댓글