[자료구조/알고리즘] 선형구조 | Queue

Eunji Lee·2023년 1월 21일
0
post-thumbnail

정의


(출처: Queue Data Structure)

데이터를 입력할 수 있는 입구와 데이터를 출력할 수 있는 출구가 있으며, 먼저 입력한 데이터가 먼저 출력되는 구조(FIFO; First In First Out)로 작동하는 선형 데이터 구조




특징

선입선출(FIFO: First In First Out)

  • 먼저 들어간 데이터가 제일 처음에 출력됨
  • 데이터가 입력된 순서대로 처리할 때 주로 사용
예1) 1, 2, 3, 4를 큐에 차례대로 넣습니다.

						queue.enqueue(데이터)
출력 방향 <---------------------------< 입력 방향
				     1 <- 2 <- 3 <- 4
				<---------------------------<
들어간 순서대로, 1번이 제일 먼저 들어가고 4번이 마지막으로 들어가게 됩니다.

예2) 큐가 빌 때까지 데이터를 전부 빼냅니다.

						queue.dequeue(데이터)
출력 방향 <---------------------------< 입력 방향

				<---------------------------<
1, 2, 3, 4
제일 첫 번째 있는 데이터부터 차례대로 나오게 됩니다.

데이터는 하나씩 입력하고 출력할 수 있음

  • 한꺼번에 여러 개의 데이터를 입력하거나 출력할 수 없음

두 개의 입출력 방향

  • 데이터의 입력, 출력 방향이 다름
  • 입력과 출력의 방향은 고정이 되어 있으며 입력과 출력 두 곳에서 접근이 가능한 구조



예시

버퍼(Buffer)

  • 컴퓨터 장치들 사이에서 데이터(data)를 주고받을 때, 각 장치 사이에 존재하는 속도의 차이시간 차이극복하기 위한 임시 기억 장치의 자료구조

프린터

  • 일반적으로 프린터는 속도가 느린 반면, CPU는 프린터와 비교하여, 데이터를 처리하는 속도가 빠름
  • 따라서, CPU는 빠른 속도로 인쇄에 필요한 데이터(data)를 만든 다음, 인쇄 작업 Queue에 저장하고 다른 작업을 수행
  • 프린터는 인쇄 작업 Queue에서 데이터(data)를 받아 일정한 속도로 인쇄
  • 컴퓨터(출력 버튼) → (임시 기억 장치의) Queue에 하나씩 들어옴 → Queue에 들어온 문서를 순서대로 인쇄

0개의 댓글