[자료구조 with Python] 스택(Stack)

스택(Stack)

  • 가장 나중에 넣은 데이터가 가장 먼저 꺼낼 수 있는 데이터 구조

  • LIFO(Last-In, First-Out): 마지막에 넣은 데이터를 가장 먼저 추출함 <=> FILO
  • 스택은 단순하고 빠른 성능을 위해 사용되므로, 보통 배열 구조를 활용해서 구현하는 것이 일반적

기능

  • push(): 데이터를 스택에 넣기
  • pop(): 데이터를 스택에서 꺼내기

파이썬으로 Stack 활용

  • 파이썬은 append(push), pop 메서드를 제공
# 리스트를 하나 만들고
data_stack = list()

# 리스트에 데이터 추가
data_stack.append(1)
data_stack.append(2)

# 확인
print(data_stack)		# [1, 2]

# 리스트에서 데이터 꺼내기
data_stack.pop()	# 2가 꺼내짐(마지막에 넣은게 2니까)

push, pop 기능 구현

stack_list = list()

# 추가는 맨 마지막에
def push(data):
    stack_list.append(data)

# 추출도 맨 마지막에
def pop():
    data = stack_list[-1]
    del stack_list[-1]
    return data
    
# 0 부터 9까지 리스트에 push 하고
for i in range(10):
    push(i)

# 꺼내기
pop()		# 9
pop()		# 8
pop()		# 7
pop()		# 6

좋은 웹페이지 즐겨찾기