큐란 무엇인가 ?
먼저 Queue의 사전적 의미는 줄, 대기행렬이다.
자료구조에서 큐는 처음에 저장한 데이터를 가장 먼저 꺼내는 것이다.
간단하게 예를 들어보자면 줄 서기 !

만약 맛집에 가려고 줄을 서고 있는데 뒤에 있는 사람이 먼저 들어간다면 ?
너무 불공평하지 않은가 ?
큐도 0, 1, 2 데이터를 넣고 꺼낼 때도 0, 1, 2 로 꺼내게 된다.
큐의 특징
FIFO, LILO -> 선입선출
즉, 순서대로 처리
큐 메서드
| 메서드 | 설명 |
| boolean add(Object o) | 지정된 객체를 Queue에 추가한다. 성공하면 true를 반환, 저장공간이 부족하면 예외 발생 |
| Object remove() | Queue에서 객체를 꺼내 반환. 비어있으면 예외 발생 |
| Object element() | 삭제없이 요소를 읽어온다. peek와 달리 Queue가 비었을 때 예외를 발생 |
| boolean offer(Object o) | Queue에 객체를 저장. 성공하면 true, 실패하면 false를 반환 |
| Object poll() | Queue에서 객체를 꺼내서 반환. 비어있으면 null을 반환 |
| Object peek() | 삭제없이 요소를 읽어 온다. Queue가 비어있으며 null을 반환 |
큐의 예시
import java.util.*;
public class QueueEx {
public static void main(String[] args) {
Queue q = new LinkedList(); // Queue 인터페이스의 구현체인 LinkedList를 사용
q.offer("0");
q.offer("1");
q.offer("2");
System.out.println("= Queue =");
while(!q.isEmpty()){
System.out.println(q.poll());
}
// 0
// 1
// 2
}
}
큐의 활용
ex) 최근사용문서, 인쇄작업 대기목록, 버퍼(buffer)
입출력 방향 고정, 두 곳으로 접근 가능
데이터를 하나씩 넣고 뺄 수 있다.
두개의 입출력 방향을 가지고 있다.
원형 큐란 ?
'Algorithm > Data Structures' 카테고리의 다른 글
| [자료구조] 스택(Stack) (0) | 2023.09.06 |
|---|---|
| [자료구조] 연결 리스트(Linked list) (0) | 2023.08.28 |
| [자료구조] 배열(Array) (0) | 2023.08.28 |
| [자료구조] 시간복잡도(Time Complexity) (0) | 2023.08.24 |
| [자료구조] 알고리즘 개념 (0) | 2023.08.23 |