큐 (Queue)
큐란?
한쪽 끝에서 원소를 넣고(rear) 반대쪽 끝에서 원소를 빼는(front) 자료구조
큐의 특징
- FIFO(First-In, First-Out), LILO(Last-In, Last-Out)
- 줄을 서는 행위와 유사하다.
cf)
Enqueue : 큐에 데이터를 넣는 기능
Dequeue : 큐에서 데이터를 꺼내는 기능
- 멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기 위해 사용됨 (운영체제에서 사용)
- 원소의 추가/제거가 O(1)
- 가장 앞/뒤의 원소 확인이 O(1)
- 제일 앞/뒤가 아닌 나머지 원소들의 검색/변경이 원칙적으로 불가능하다.
큐의 선언
import java.util.LinkedList;
import java.util.Queue;
Queue<Integer> queInt = new LinkedList<Integer>();
Queue<String> queStr = new LinkedList<String>();
큐는 LinkedList 클래스와 함께 사용해야 한다.
큐의 데이터 핸들링
데이터의 추가
queInt.add(1);
queInt.offer(2);
System.out.println(queInt);
데이터의 삭제
queInt.poll();
queInt.remove();