- 데이터를 제한적으로 접근할 수 있는 구조(LIFO)
- 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조. 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조
- push() : 데이터를 스택에 삽입
- pop() : 데이터를 스택에서 꺼내기
- 장점 : 구조가 단순해서 구현이 쉽다., 데이터 저장/읽기 속도가 빠르다.
- 단점 : 데이터 최대 갯수를 미리 정해야 한다., 파이썬의 경우 재귀함수는 1000번 까지만 호출가능하다.
# 재귀함수 결과가 스택과 유사하다.
def recursive(data):
if data < 0:
print('ended')
else:
print(data)
recursive((data-1))
print('returned', data)
recursive(4)
========================================================
4
3
2
1
0
ended
returned 0
returned 1
returned 2
returned 3
returned 4
# 구현 1
data_stack = list()
data_stack.append(1) # push
data_stack.append(2)
print(data_stack.pop()) # pop
# 구현 2
stack_list = list()
def push(data):
stack_list.append(data)
def pop():
data = stack_list[-1]
del stack_list[-1]
return data
for idx in range(10):
push(idx)
print(pop())
'CS > 자료구조_개념' 카테고리의 다른 글
📌 트리(Tree) (0) | 2021.05.30 |
---|---|
[자료구조] : 연결리스트(Linked List, Double Linked List) (0) | 2021.05.09 |
[자료구조] : 큐(선형), 힙 (0) | 2021.05.05 |
[자료구조] : 배열 (0) | 2021.05.05 |