728x90
Queue
Queue : 자료구조중 하나, 먼저 집어넣은 데이터가 먼저 나오는 선입선출의 구조(FIFO: First In First Out)
Front : 맨 앞에 위치한 인덱스 -> 다음에 출력될 값
Rear : 맨 뒤에 위치한 인덱스 -> 가장 최근에 입력된 값
[활용]
- 너비 우선 탐색(BFS, Breadth-First Search) 구현
- 캐시(Cache) 구현
- 우선순위가 같은 작업 예약
- 선입선출이 필요한 대기열
- 콜센터 고객 대기시간
- 프린터의 출력 처리
- 윈도 시스템의 메시지 처리기
- 프로세스 관리
[구현]
큐는 인터페이스이기 때문에 LinkedList 또는 ArrayDeque로 구현해주어야 한다.
Queue<String> queue = new LinkedList<String>(); 또는
Queue<Integer> queue = new ArrayDeque<Integer>();
queue.offer() : 큐에 값 삽입.
queue.poll() : 큐 값 출력 및 삭제
queue.peek() : 큐 값 출력 (확인만 하고 삭제하지 않는다)
queue.size() : 큐의 길이 반환
queue.isEmpty() : 큐가 비어있는지 true/false로 반환
import java.util.LinkedList;
import java.util.Queue;
public class QueueAPITest {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<String>();
System.out.println(queue.size()+"//"+queue.isEmpty());
queue.offer("[ssafy]"); //큐에 삽입
queue.offer("[7기]");
queue.offer("[화이팅]");
queue.offer("[안녕]");
System.out.println(queue.size()+"//"+queue.isEmpty());
System.out.println(queue.poll()); //빼낸다 ssafy (삭제o)
System.out.println(queue.size()+"//"+queue.isEmpty());
System.out.println(queue.peek()); //확인만 (삭제x)
System.out.println(queue.size()+"//"+queue.isEmpty());
System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.poll());
System.out.println(queue.size()+"//"+queue.isEmpty());
System.out.println(queue.poll());
}
}
[예제]
https://java-is-happy-things.tistory.com/18
728x90
'알고리즘 > 복습' 카테고리의 다른 글
Knapsack알고리즘 (0) | 2022.04.05 |
---|---|
[Java] Stack (0) | 2022.03.19 |
[Java] 부분집합(Subset) (0) | 2022.03.15 |
[Java] 조합 (0) | 2022.03.14 |
[Java] 순열 (0) | 2022.03.14 |
댓글