큐란 스택과 비슷한 개념인데 차이점이 있다면 큐는 FIFO 즉 먼저 입력된 데이터가 먼저 출력되는 순서이며 스택은 LIFO으로 마지막으로 입력된 데이터가 먼저 출력되는 구조입니다.
파이썬에서 라이브러리 함수로 deque를 제공해주지만 직접 구현 할 줄도 알아야 하기 때문에
class Node:
def __init__(self, val, next):
self.val = val
self.next = next
class Queue:
def __init__(self):
self.front = None
def push(self,val):
if not self.front:
node = Node(val,None)
node = self.front
while node.next:
node = node.next
node.next = Node(val, None)
def pop(self):
if not self.front:
return None
node = self.front
self.front = self.front.next
return node.item
def is_empty(self):
if not self.front:
return self.front is None
파이썬 라이브러리로 제공하는 함수를 사용하면
from collections import deque
deq = deque([1,2,3,4])
print(deq.pop()) // 4
deq.append(5)
print(deq) //deque([1, 2, 3, 5])
deq.popleft()
print(deq) //deque([2, 3, 5])
deq.appendleft(3)
print(deq) //deque([3, 2, 3, 5])
요즘은 알고리즘/자료구조를 계속해서 공부하면서 코딩테스트 문제도 풀고있는데 굉장히 어렵다.
하지만 이 과정이 있어야 성장한다고 믿고 꾸준하고 열심히 공부해야겠다.