💡 큐 (Queue)
큐 알고리즘은 스택과 같이 데이터를 임시 저장하는 자료구조이지만, 스택처럼 가중 나중에 넣은 데이터를 먼저 꺼내지 않는다. 스택은 후입선출이지만, 큐는 선입선출 ( First In First Out ) 방식이다.
간략하게 설명하자면, '가장 먼저 넣은 데이터를 가장 먼저 꺼내는 구조이다.'
💡 설명
1. 파란색, 주황색이 포함된 배열에 노란색을 넣는다.
2. 노란색이 들어가게 되면 배열에는 [ 파란색, 주황색, 노란색 ] 이 있다.
3. pop 을 시도하는 경우 가장 먼저 들어간 파란색이 나오게 된다.
💡 숫자로 된 설명
큐 ( Queue ) 는 데이터 추가하는 작업을 인큐 ( enqueue ), 데이터 꺼내는 작업을 디큐 ( dequeue ) 라고 한다.
💡 간략한 코드로 Queue 구현
1. queue 배열 생성
2. 5와 3을 push 하게 되면 [5, 3] 이 출력된다.
3. pop(0) 을 하는 경우 먼저 들어간 5가 나오며, queue 에는 3만 남게 된다.
pop(0)은 제일 앞 원소를 뽑아낸다.
💡 class 를 활용한 Queue 구현
class Queue:
def __init__(self):
self.queue = []
def enqueue(self, data):
self.queue.append(data)
def dequeue(self):
size = len(self.queue)
if size == 0:
print ("Queue is Empty")
else:
data = self.queue[0]
self.queue.pop(data)
return self.printInfo()
def printInfo(self):
print ("queue_list : {}".format(self.queue))
queue = Queue() # queue 객체 생성
for number in range(3): # for loop 을 이용하여 0, 1, 2 enqueue
queue.enqueue(number)
queue.printInfo() # queue_list 출력 : 출력 시 [0, 1, 2]
dequeue_result = queue.dequeue()
print (dequeue_result)
queue class 를 만드는데, queue 객체 초기화 변수로는 queue_list 를 만든다.
큐 ( Queue ) 는 데이터 추가하는 작업을 인큐 ( enqueue ), 데이터 꺼내는 작업을 디큐 ( dequeue ) 라고 한다.
데이터 추가 작업을 위한 함수로 enqueue , 데이터 꺼내는 작업으로 dequeue 함수를 만든다.
dequeue 시 queue_list 길이가 0인 경우 'Queue is Empty' 를 출력하고, 아니라면 queue_list 의 제일 첫 번째 있는 값을 꺼낸다.
💡 실행 결과
[Python 자료구조] 모듈 활용한 큐 (LifoQueue, PriorityQueue) - 2 (0) | 2022.02.06 |
---|---|
[Python 자료구조] 입력 제한 없는 큐 (simplequeue) - 1 (0) | 2022.02.06 |
[Python 자료구조] 이진검색 코드 개선 (0) | 2022.02.06 |
[Python 자료구조] 스택 (Stack) (0) | 2022.02.06 |
[Python 자료구조] 이진검색 (0) | 2022.02.04 |