본문 바로가기
알고리즘/개념

[Queue] 큐 와 덱 사용법과 예제를 알아보자.

by dokii 2022. 1. 15.
728x90
반응형

queue란 

  • 사전적 으로는 무엇을 기다리는 사람, 자동차 등의 라는 뜻
  • FIFO구조 (First In First Out, 선입선출)
  • 그래프의 넓이 우선탐색(BFS)에서 사용한다.
  • 컴퓨터 버퍼에서, 마구 입력되었으나 처리하지못할때 큐를 만들어 대기 시킨다.

Enqueue : 큐 맨 뒤에 데이터 추가
Dequeue : 큐 맨 앞쪽의 데이터 삭제

라고 한다.

 

 

사용법

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

Queue<String> queue = new LinkedList<>(); // 선언

queue.add("data1"); //"data1"을 큐에 추가한다. -> 큐가 꽉차는 상황에서 예외발생시킴
queue.offer("data2"); //"data2"을 큐에 추가한다. -> 사이즈제약이 있는경우 false반환


queue.peek(); //첫번째 있는 값을 확인한다. -> 큐가 비어있으면 null리턴
queue.element(); //첫번째 있는 값을 확인한다. -> 큐가 비어있으면 예외발생


queue.poll(); //첫번째 값을 반환하고 큐에서 제거한다. 큐가 비어있다면 null
queue.remove(); //첫번째 값을 제거한다.
queue.clear(); //큐값을 초기화 한다.

덱이란

  • stack+Queue
  • 데이터의 추출과 삭제를 앞, 뒤로 다 할수 있다.

사용법


Deque<Integer> dque= new ArrayDeque<Integer>(); // 클래스 정의


dq.offer(1);		//데이터 저장.
dq.offerFirst(1);	//앞으로 삽입(큐와 반대)
dq.offerLast(1);	// 뒤로 삽입


dq.poll();			//데이터 추출
dq.pollFirst();		//앞에꺼 추출, 비어있으면 null리턴
dq.pollLast();		//뒤에꺼 추출(큐와 반대), 비어있으면 null리턴


dq.peek()		//데이터 추출, 똑같이 first, Last 사용가능
dq.get()		//데이터 추출, peek()랑 똑같음

 

 


https://coding-factory.tistory.com/602

 

[Java] 자바 Queue 클래스 사용법 & 예제 총정리

Queue란? Queue의 사전적 의미는 무엇을 기다리는 사람, 차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미하는데 이처럼 줄을 지어 순서대로 처리되는 것이 큐라는 자료구조입니다. 큐는 데이터를

coding-factory.tistory.com

 

728x90
반응형

댓글