프론트엔드 정복하기
파이썬 스택 본문
스택 : LIFO 정책을 갖는다.
대표적인 스택의 활용
- 컴퓨터 내부의 프로세스 구조의 함수 동작 방식
push : 데이터 스택에 넣기
pop : 데이터 스택에서 꺼내기
재귀함수와 스택
아래는 운영체제 과목에서 깊게 설명해야 이해할 수 있는 부분이다. 프로세스 스택의 구조까지 이해할 필요는 없다.
다만, 함수 위에 함수가 호출되면 스택같은 구조로 함수가 쌓이고, 맨위 함수가 끝나면 그 다음( 그 아래) 함수가 불려진다는 프로세스만 이해하면 된다.
# 재귀 함수
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
자료 구조 장단점
장점
- 구조가 단순해서 구현이 쉽다.
- 데이터 저항, 읽기의 속도가 빠르다.
단점 (일반적 스택 구현 시)
- 데이터 최대 개수를 미리 정해야 한다.
(파이썬의 경우 재귀 함수는 최대 1000번까지 호출 가능)
- 저장 공간 낭비 발생할 수 있음
( 최대 개수 만큼 저장공간을 확보해야 하므로)
( 링크드 리스트 등으로 구현하면 위같은 단점은 발생x)
'패스트캠퍼스 - 자료구조와 알고리즘 > 파이썬 기초 문법' 카테고리의 다른 글
파이썬과 OOP(객체지향프로그래밍) (0) | 2021.08.03 |
---|---|
링크드 리스트 (0) | 2021.08.03 |
파이썬 함수 (0) | 2021.07.29 |
파이썬 집합 (0) | 2021.07.27 |
파이썬 딕셔너리 (0) | 2021.07.27 |