자료구조 with 자바

준비중..

자료구조 with 자바

데이터를 효율적으로!

07 큐(queue)

# 큐(queue) <div class="embed-responsive embed-responsive-16by9"> <iframe src="https://www.youtube.com/embed/qA0BSAWjPQs" frameborder="0" allowfullscreen></iframe> </div> ## 목차 1. 큐는 뭘까? 2. 장점 3. 구조 4. 사용 예 5. 구현 - 명세 - 설계 - 구현 ## 1. 큐는 뭘까? 큐(Queue)는 FIFO(First In First Out) 의 특징을 갖는 자료구조이다. ![Imgur](https://i.imgur.com/RdwTLiw.png) ## 2. 장점 큐는 입력 데이터들의 순서를 정하는데 최적화 되어있다. 가장 기본적으로 FIFO를 지원하지만, 특정 상태에 따라 우선순위를 결정하기도 한다. (= 우선순위 큐) ![Imgur](https://i.imgur.com/tu7ENuS.png) ## 3. 특징 데이터를 추가(enqueue) 하는 곳을 리어(rear), 해제(dequeue) 하는 곳은 프런트(front)라 한다. ## 4. 사용 예 입력 데이터의 출력순서를 정할 때 사용된다. 대표적 예로는 컴퓨터 운영체제(OS)의 스케쥴러가 있다. ![](https://i.imgur.com/yFEiuRf.png) ## 5. 구현 큐(queue)를 구현해보자. ### 5.1 명세서 큐의 명세는 아래와 같다. + 데이터를 추가(enqueue)하고 해제(dequeue)할 수 있다. + 가장 먼저 추가한 데이터가 가장 먼저 해제된다. + front 데이터를 확인 할 수 있다. + rear 데이터를 확인 할 수 있다. + 큐가 비어있는 경우 null값을 반환한다. ### 5.2 설계 명세서를 기반으로 클래스 다이어그램을 설계하자. ![Imgur](https://i.imgur.com/K95bwe8.png) ### 5.3 시뮬레이션 ![Imgur](https://i.imgur.com/goUFGtn.png) ### 5.4 코드 구현 연습은 페이지 하단 실습문제를 통해 연습해보자.

Challenge

개념 실습! 학습 내용을 진짜 내 것으로 만들기!