[자료구조] 큐

나고수·2021년 10월 21일
0

참고 - 패스트캠퍼스 알고리즘/기술면접 완전 정복 올인원 패키지 Online

Queue

  • Fist In First Out
  • Enqueue : 큐에 데이터 넣기
  • Dequeue : 큐에 데이터 빼기
  • 활용 예 : 멀티태스킹을 위한 프로세스 스케줄링 방식을 구현하기 위해 많이 사용 됨
  • 특별한 장단점은 없음

가장 일반적인 Queue (FIFO)

import queue
data = queue.Queue()
data.put("hi")
data.put(3)
data.qsize() //2
data.get() //hi
data.get() //3
data.qsize() //0

LifoQueue(Last In First Out)

  • stack과 같은 구조임
import queue
data = queue.LifoQueue()
data.put("hi")
data.put(3)
data.qsize() //2
data.get() //3
data.get() //hi

PriorityQueue

  • 정해진 우선순위대로 출력되는 queue
  • 우선순위가 작을 수록 높음 (작을수록 먼저 출력됨)
import queue
data = queue.PriorityQueue()
data.put((1,"hi")) //(우선순위,데이터) 
data.put((5,40))
data.put((15,"bye"))
data.get() //(1,'hi')
data.get() //(5,40)
data.get() //(15,'bye)

리스트로 기본적인 Queue 구현해보기

list_queue = list()
def enqueue(data):
	list_queue.append(data)
def dequeue:
	out_data = list_queue[0]
   	del list_queue[0] //맨 처음 데이터 지우기
    	return out_data //맨 처음 데이터 리턴
profile
되고싶다

0개의 댓글