최대 1 분 소요

스택(Stack)

LIFO(Last in First Out)

나중에 들어간 데이터가 가장 먼저 나오는 입구와 출구가 같은 형태

맨 뒤 삽입 + 맨 뒤 접근 및 삭제 기능이 필요하다.

따라서 큐와 마찬가지로 더블리 링크드 리스트를 이용하는 것이 효율적이다.

from collections import deque

stack = []

# 스택 맨 끝에 데이터 추가
stack.append("A")
stack.append("B")

# 맨 끝 데이터 접근
print(stack[-1])

# 맨 끝 데이터 삭제
print(stack.pop())

print(stack) # 스택 출력

>>>  B
>>>  B
>>>  ['A']

Stack은 동적 배열과 더블리 링크드 리스트 둘 다로 구현할 수 있다.

  동적배열 링크드 리스트
맨 뒤 삭제 분할 상환 O(1) O(1)
맨 뒤 삽입 분할 상환 O(1) O(1)
맨 앞 접근 O(1) O(1)

댓글남기기