큐
한쪽 끝에서는 삽입 작업이 이루어지고 반대쪽 끝에서는 삭제 작업이 이루어지는 자료구조.
스택과 마찬가지로 배열과 리스트로 구현이 가능하다.
시간 순서대로 쌓이며 가장 먼저 삽입된 자료가 가장 먼저 삭제되는
선입선출(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 |
댓글