Queue (큐)

김한수·2023년 6월 13일

Data Structure

목록 보기
2/3

Queue?

First In First Out; FIFO

큐는 스택과 다르게 먼저 들어온 데이터가 먼저 나가는 선입선출 구조입니다.

입력 순서대로 데이터 처리를 해야할 때 주로 사용합니다.

Ex) 프린트기, 터널


큐 기본 구조

위에서 말했던 것처럼 선입선출의 구조를 따르며, 기본적으로 데이터 추가와 데이터 꺼내기, 큐 공간 확인 동작 등으로 스택과 얼추 비슷한 느낌이 나지만 아래 사진을 본다면 차이점을 인지하실 수 있을 것입니다.

Queue

스택에서는 데이터 추가와 꺼내는 작업을 push와 pop이라고 칭했지만 Queue에서는 Enqueue와 Dequeue라고 부릅니다.


큐 기본 연산

데이터 추가 (Enqueue)

큐에 데이터를 추가하는 것은 스택과 차이가 없습니다. 아래 이미지와 같이 동작합니다.

Enqueue

데이터 꺼내기 (Dequeue)

큐와 스택의 차이점은 이 꺼내는 부분에서 발견할 수 있습니다.
아래 이미지를 확인해보시면, 큐는 들어간 순서대로 데이터가 꺼내지는 것을 확인할 수 있습니다.

Dequeue


Queue Array

물론 Java에서는 Queue를 따로 제공하지만 Array로 큐를 구성하는 방법 또한 존재합니다.

// Enqueue
public void enqueue(int data) {
	this.rear = (this.rear + 1) % this.arr.length;
	this.arr[this.rear] = data;
}

// Dequeue
public void dequeue() {
	front = (front + 1) % this.arr.length;
	return this.arr[front];
}

이상 Queue 학습 내용이었습니다.

profile
동기부여를 잘하는 개발자

0개의 댓글