스택은 선입후출의 모델이다.
쌓은 데이터에서 가장 최근에 쌓은 데이터를 꺼내어 접근하는 방식으로 사용한다.
class Node:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Stack:
def __init__(self):
self.top = None
def push(self, value):
self.top = Node(value, self.top)
def pop(self):
if self.top is None:
return None
node = self.top
self.top = self.top.next
return node.val
def is_empty(self):
return self.top is None
위는 스택의 구조 예시이다.
연결리스트의 구조이고, push시 노드의 .top에 value를 집어넣는다.
이때 .next값은 self.top을 갖게 되는것이 핵심이다.