728x90

Queue

  • 먼저 들어간 자료가 먼저 나오는 구조 FIFO(First In FIrst Out) 선입선출 구조 
  • 큐는 한 쪽 끝은 프런트(front)로 정하여 삭제 연산만 수행
  • 다른 한 쪽 끝은 리어(rear)로 정하여 삽입 연산만 수행
  • 그래프의 넓이 우선 탐색(BFS)에서 사용
  • 컴퓨터 버퍼에서 주로 사용, 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼(큐)를 만들어 대기 시킨다.

출처 TCP SCHOOL

 

Queue 선언

import java.util.LinkedList; //import
import java.util.Queue; //import
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언, linkedlist 이용
Queue<String> queue = new LinkedList<>(); //String형 queue 선언, linkedlist 이용

자바에서 큐는 LinkedList를 활용하여 생성해야 한다. 

 

Queue Method

메소드 설명
boolean add(E e) 해당 큐의 맨 뒤에 전달된 요소를 삽입함.
만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면
IllegalStateException을 발생시킴.
E element() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
boolean offer(E e) 해당 큐의 맨 뒤에 전달된 요소를 삽입함.
E peek() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
만약 큐가 비어있으면 null을 반환함.
E poll() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거함.
만약 큐가 비어있으면 null을 반환함.
E remove() 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거함.

 

Queue 예제

Queue<Integer> stack = new LinkedList<>(); //int형 queue 선언
queue.add(1);     // queue에 값 1 추가
queue.offer(2);     // queue에 값 2 추가
queue.poll();       // queue에 첫번째 값을 반환하고 제거 비어있다면 null
queue.peek();       // queue의 첫번째 값 참조
queue.remove();     // queue에 첫번째 값 제거
queue.clear();      // queue 초기화
728x90

+ Recent posts