Python >
파이썬의 큐
1. queue 모듈의 Queue 객체를 사용
1
2
3
4
5
6
7
8
9
10
from queue import Queue
q = Queue()
q.put([1, 2, 3])
q.get()
if q.empty():
print("queue is empty.")
queue 모듈의 Queue 객체는 put(), get(), empty() 등의 메서드를 사용할 수 있다.
2. 리스트를 통한 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class QUEUE:
def __init__(self):
self.qFront = 0
self.queue = []
def push(add, addedObj):
self.queue.append(addedObj)
def pop(add):
self.qFront += 1
return self.queue[qFront-1]
def front(add):
return self.queue[qFront]
def empty(add):
return True if self.qFront == len(self.queue) else False
q = QUEUE()
q.push([1, 2, 3])
print(q.front())
q.pop()
if q.empty():
print("queue is empty.")
queue 모듈의 Queue 객체는 큐의 front의 데이터를 pop하지 않고 단지 참조만 하는 메서드를 지원하지 않는다. 따라서 front를 단지 참조만 해야 하는 알고리즘을 구현하는 경우에는 queue 모듈의 Queue 객체를 사용할 것이 아니라 큐를 직접 구현해야 한다. 리스트와 클래스를 이용해 간단하게 구현할 수 있다.
1
2
3
4
5
6
7
8
9
q_front = 0
q = []
q.append([1, 2, 3])
print(q[q_front])
q_front += 1
if q_front == len(q):
print("queue is empty.")
50줄 미만의 소규모 코딩을 하는 경우에는 클래스 선언 없이 리스트에 추가로 q_front라는 변수를 선언하는 것만으로도 간단히 큐를 구현할 수 있다.
Python 카테고리의 다른 글