BE/Java

Queue 란?

jjuni_96 2024. 2. 13. 10:51
728x90

구조

FIFO (First In First Out) 구조로 먼저 들어온게 먼저 나가는 구조

 

Enqueue : 큐에 데이터 추가

Dequeue : 큐에 데이터 삭제

 

 

특징

1. 한쪽은 프론트(front)로 정하여 삭제 연산만 진행

2. 다른 한쪽은 리어(rear)로 정하여 삽입 연산만 진행

3. 그래프의 넓이 탐색(BFS)에 주로 사용

4. 컴퓨터 버퍼 및  자격증, 온라인 행사 등 많은 인입이 들어와서 처리하지 못하는 경우, 큐를 만들어서 대기를 시키는 구조로 사용

 

큐 생성

import java.util.LinkedList; //import
import java.util.Queue; //import

// int 형 
Queue<Integer> queueInt = new LinkedList<>();
// String 형 
Queue<String> queueString = new LinkedList<>();

 

 

 

데이터 추가

add 성공 시 true 실패 시 Exception
offer 성공 시 true 실패 시 false
queueInt.add(5);
queueInt.add(4);
queueInt.add(3);
queueInt.add(2);
queueInt.add(1);
System.out.println(queueInt);


// [5, 4, 3, 2, 1]

 

 

데이터 삭제

remove 성공 시 true  실패 시 Exception
poll 성송 시 true 실패 시 값 리턴
queueInt.remove();
queueInt.remove();
queueInt.remove();
System.out.println(queueInt);


// [3, 2, 1]

 

 

데이터 검증

element 성공 시 true  실패 시 Exception
peek 성공 시 true 실패 시 값 리턴
queueInt.element();
queueInt.peek();

 

 

BFS 탐색에서 사용하는 내용은 추후에...

728x90
반응형
LIST