스택은 Last-In-First-Out (LIFO)
큐는 First-In-First-Out (FIFO)
파이썬에서 리스트는 큐와 스택의 모든 연산을 지원하지만 큐의 연산은 비효율적이다.
따라서 Deque 를 이용하면 좋은 성능을 낼 수 있다.
class Node:
def __init__(self, item, next):
self.item = item
self.next = next
class Stack:
def __init__(self):
self.last = None
def push(self, item):
self.last = Node(item, self.last)
def pop(self):
item = self.last.item
self.last = self.last.next
return item
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
stack.push(4)
stack.push(5)
for __ in range(5):
print(stack.pop())
5 4 3 2 1