꼭 알아둬야 할 자료구조: 스택 (Stack)
- 데이터를 제한적으로 접근할 수 있는 구조
- 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조
- 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조
- 큐: FIFO 정책
- 스택: LIFO 정책
# 재귀함수로 스택 구현
def recursive(data):
if data < 0:
print("ended")
else:
print(data)
recursive(data-1)
print("returned", data)
4
3
2
1
0
ended
returned 0
returned 1
returned 2
returned 3
returned 4
=> 스택은 단순하고 빠른 성능을 위해 사용되므로, 보통 배열구조를 활용해서 구현한늑 서이 일반적임
==> 이 경우, 위에서 열거한 단점이 있을 수 있음
data_stack = list()
data_stack.append(1)
data_stack.append(2)
print(data_stack)
data_stack.pop()
[1, 2]
2
stack_list = list()
def push(data):
stack_list.append(data)
def pop():
data = stack_list[-1]
del stack_list[-1]
return data