알고리즘

2. 자료구조 - 큐(Quene)

공부중인학생 2022. 1. 9. 01:55

- 본 게시글은 패스트 캠퍼스의 알고리즘 / 기술면접 완전 정복 올인원 패키지를 공부한 내용을 바탕으로 작성되었습니다. 

 

 

큐는 배열과 함께 쉬운 자료구조 중 하나입니다. 운영체제나 네트워크에서 많이 사용이 됩니다. 

 

 

큐 구조

  • 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 구조입니다. 간단하게 생각하면 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 비슷한 구조입니다. 
  • 이러한 정책을 FIFO(First-In, First-Out)이라고 합니다. (이와 반대인 LIFO도 있습니다.)
  • 큐에서 출력된 데이터는 사라지고 나머지 데이터는 줄을 당겨서 앉습니다.

 

- Enqueue: 큐에 데이터를 넣는 기능

- Dequeue: 큐에서 데이터를 뽑는 기능

 

이제 FIFO를 사용하는 큐를 만들고 데이터를 넣어보겠습니다.

# 일반적인 큐

import queue

data1 = queue.Queue()# FIFO정책 큐가 만들어집니다.

data1.put("d")# string data를 넣고
data1.put(1)# int data를 넣습니다.

data1.qsize()#데이터 사이즈 확인 2개 넣었으니 2개

# Output: 2

 

현재 큐 사이즈가 2인 상태인데 이 상태에서 데이터를 한번 꺼내보겠습니다.

data1.get()#데이터를 꺼냄

# Output: 'd'


data1.qsize()

# Output: 1

 

먼저 들어간 데이터인 'd'가 나오는 것과 큐 사이즈가 줄어든 것을 알 수 있습니다. LIFO 정책 같은 경우는 마지막에 넣은 것이 가장 먼저 추출이 됩니다.

 

import queue
data2 = queue.LifoQueue()

data2.put(1)
data2.put(3)
data2.qsize()

# Output: 2


data2.get()

# Output: 3

 

 

 

'알고리즘' 카테고리의 다른 글

1. 자료구조 - 배열(Array)  (0) 2022.01.09